Проблемы с трансляцией матрицы Numpy

#python #numpy #matrix

Вопрос:

data представляет собой матрицу 1256х277

np.array_split(ary=data, indices_or_sections=10, axis=1) дает нам список данных 1256×28

Но когда я это сделаю:

 sub_data_ndarray = np.array(object=np.array_split(ary=data, indices_or_sections=10, axis=1))
 

Я получаю ошибку:

Ошибка значения: не удалось передать входной массив из формы (1256,28) в форму (1256)

?

Комментарии:

1. Убедитесь, что все массивы, созданные с помощью np.array_splt , имеют одинаковую форму.

2. @hpaulj В результате получается семь матриц 1256×28 и три матрицы 1256×27.

3. Тогда вы не сможете собрать их в один 3d-массив.

4. @hpaulj хммм, но я и не пытаюсь. Я хочу преобразовать полученный список [sub_data, sub_data, sub_data] в ndarray, чтобы я мог использовать операции выбора ndarray. И эти подданные просто оказываются матрицей.

5. Какого рода ndarray selection operations вы имеете в виду? В лучшем случае вы можете создать массив типа объекта dtype. Я мог бы показать вам, как это делается, но …

Ответ №1:

попробуйте с np.stack :

 A = [1,2,3,4,5,6,7,8,9,0]
B = [1,2,3,4,5,6,7,8,9,0]
C = np.stack((A, B))
 

Комментарии:

1. np.array((A,B)) работает с вашими списками так же хорошо. Я ожидаю stack , что у вас также возникнут проблемы со списком операций, хотя это даст другое (и, возможно, более четкое) сообщение об ошибке.