Ваш массив имеет тип dtype object
, потому что это не числовой массив с одинаковым количеством столбцов в каждой строке.Это выглядит примерно так:
L = [np.array([0, 0, 1]), np.array([0, 0, 0]), None]
A = np.array(L)
array([array([0, 0, 1]),
array([0, 0, 0]),
None], dtype=object)
for i in A:
print(type(i))
<class 'numpy.ndarray'>
<class 'numpy.ndarray'>
<class 'NoneType'>
Это не то, как вы должны использовать NumPy.Вы можете попробовать удалить значения None
, чтобы создать обычный числовой массив NumPy:
B = np.array([i for i in L if i is not None])
array([[0, 0, 1],
[0, 0, 0]])
Если сомневаетесь, проверьте dtype
массива, чтобы убедиться, что он имеет правильный тип:
A.dtype # dtype('O')
B.dtype # dtype('int32')