Изменение размера массива в другой форме в Python - PullRequest
1 голос
/ 23 октября 2019

У меня есть следующий массив:

a = np.random.rand(5,2)
a

array([[0.98736372, 0.07639041],
       [0.45342928, 0.4932295 ],
       [0.75789786, 0.48546238],
       [0.85854235, 0.74868237],
       [0.13534155, 0.79317482]])

, и я хочу изменить его размер, чтобы он был разделен на 2 пакета с тремя элементами (при необходимости добавляя нули):

array([[[0.98736372, 0.07639041],
       [0.45342928, 0.4932295 ],
       [0.75789786, 0.48546238]],
       [[0.85854235, 0.74868237],
       [0.13534155, 0.79317482],
       [0, 0]]])

Я пробовал это, но он возвращает None:

a = a.copy()
a.resize((2,3,2), refcheck = False)

Я считаю, что .reshape не предоставит решение, так как он не может заполнить нулями, чтобы соответствовать требуемым измерениям для массива.

1 Ответ

5 голосов
/ 23 октября 2019

Используя numpy.resize, вы должны использовать так:

import numpy as np
a = np.random.rand(5,2)
b = np.resize(a, (2,3,2))

В противном случае вы можете использовать метод объекта для получения того же результата, например:

import numpy as np
a = np.random.rand(5,2)
a.np.resize(2,3,2)
b = a.copy()

noteпервый возвращает ndarray, а последний возвращает None, потому что он изменяет сам объект. Для получения дополнительной информации смотрите документ numpy.resize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...