#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
, что у вас также возникнут проблемы со списком операций, хотя это даст другое (и, возможно, более четкое) сообщение об ошибке.