1

我是python的新手。我对数组的维度有疑问。

我有(10,192,192,1)数组,类型是(类'numpy.ndarray')。我想将此数组划分为 10 个分隔数组,例如 10 * (1,192,192,1)。但是当我分开时,我总是得到 (192,192,1) 数组。如何获得与原始数组相同维度类型的分隔数组?

下面是我的代码。

b = np.ndarray((a.shape[0],a.shape[1],a.shape[2],a.shape[3]))
print(b.shape)  # (10,192,192,1)

for i in range(a.shape[0]):
b[i] = a[i]
print(b[i].shape)  # (192,192,1), but I want to get (1,192,192,1)
4

2 回答 2

0

你可以使用重塑它np.array()

b = np.zeros((192,192,1))
print(b.shape)  #(192, 192, 1)
print(np.array([b]).shape) #(1, 192, 192, 1)
于 2018-02-22T19:54:30.637 回答
0

只需使用 numpy.reshape()函数:

b[i].reshape((1,192,192,1))

在此处查看文档

例如:

>>> x = np.zeros((13,24))
>>> x.shape
(13,24)
>>> x.resize((1,13,24)).shape
(1,13,24)
于 2018-02-22T19:50:41.480 回答