python中的四维零数组
我想用python制作一个4维的零数组。 我知道如何对正方形数组执行此操作,但我希望列表具有不同的长度 现在我用这个:python中的四维零数组,python,arrays,numpy,Python,Arrays,Numpy,我想用python制作一个4维的零数组。 我知道如何对正方形数组执行此操作,但我希望列表具有不同的长度 现在我用这个: numpy.zeros((200,)*4) 这使得它们的长度都是200,但我希望有长度200,20100,20,因为现在我的数组中有很多不使用的零 >>> np.full((200,20,10,20), 0) numpy.full 返回给定形状和类型的新数组,用fill_值填充 例如: >>> np.full((1,3,2,4), 0)
numpy.zeros((200,)*4)
这使得它们的长度都是200,但我希望有长度
200,20100,20
,因为现在我的数组中有很多不使用的零
>>> np.full((200,20,10,20), 0)
numpy.full
返回给定形状和类型的新数组,用fill_值填充
例如:
>>> np.full((1,3,2,4), 0)
array([[[[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]],
[[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]],
[[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]]]])
可以将多个参数传递给形状: 形状:整数或整数序列 新数组的形状,例如,(2,3)或2 当尺寸较大时,它似乎也更有效:
In [43]: timeit arr = np.full((200, 100, 100, 100),0)
1 loops, best of 3: 232 ms per loop
In [44]: timeit arr = np.zeros((200, 100, 100, 100))
100000 loops, best of 3: 12.6 µs per loop
In [45]: timeit arr = np.zeros((500, 100, 100, 100))
100000 loops, best of 3: 13.5 µs per loop
In [46]: timeit arr = np.full((500, 100, 100, 100),0)
1 loops, best of 3: 1.19 s per loop
从Python v。3.50,使用
np.full
命令返回
未来警告:将来,full((1,3,2,4),0)将返回一个数据类型数组('int32')
基于此,我将插入@Padriac的答案。不过,这两种方法现在都有效 我不知道你能把args传给shape。很高兴知道。
In [43]: timeit arr = np.full((200, 100, 100, 100),0)
1 loops, best of 3: 232 ms per loop
In [44]: timeit arr = np.zeros((200, 100, 100, 100))
100000 loops, best of 3: 12.6 µs per loop
In [45]: timeit arr = np.zeros((500, 100, 100, 100))
100000 loops, best of 3: 13.5 µs per loop
In [46]: timeit arr = np.full((500, 100, 100, 100),0)
1 loops, best of 3: 1.19 s per loop