用一个可变维填充3D numpy数组

时间:2019-07-15 22:49:11

标签: python python-3.x numpy numpy-ndarray

我想填充一个3D numpy数组,它的尺寸为(?,100,100)。第一维的范围在500到1000之间,但事先未知。我可以使用append方法,但这很慢。

还有没有可能创建这样的3D numpy数组,而第一个维度是事先未知的? numpy数组使用for循环填充。

第二,假设我有以下两个numpy数组:

import numpy as np
arr1 = np.random.randint(0, 100, size=(30, 100, 100))
arr2 = np.random.randint(0, 100, size=(50, 100, 100))

如何沿第一维连接arr1arr2,以使所得数组具有形状(80,100,100)?

1 个答案:

答案 0 :(得分:1)

关于第一个问题,我总是使用完全没问题的np.empty和np.append方法。

arr = np.empty((0, 100, 100), int)
arr = np.append(arr,x,axis=0)

关于第二个问题,append再次运行良好:

arr3  = np.append(arr1, arr2, axis=0)

“连接”也可以使用:

arr3  = np.concatenate((arr1, arr2), axis=0)