In [439]: mylist
Out[439]: [[0, 3.0], [1, 2.5]]
In [440]: mat
Out[440]:
array([[0. , 3. ],
[1. , 2.5]])
In [441]: np.array(mylist, dtype)
Out[441]:
array([[(0, 0. ), (3, 3. )],
[(1, 1. ), (2, 2.5)]], dtype=[('A', '<i8'), ('B', '<f8')])
Обратите внимание, что числа были продублированы в структурированном массиве.
Если вместо этого мы предоставим список кортежей (обратите внимание, как для отображения структурированного массива используются кортежи):
In [442]: mytup = [tuple(row) for row in mylist]
In [443]: mytup
Out[443]: [(0, 3.0), (1, 2.5)]
In [444]: np.array(mytup, dtype)
Out[444]: array([(0, 3. ), (1, 2.5)], dtype=[('A', '<i8'), ('B', '<f8')])
In [445]: _['A']
Out[445]: array([0, 1])