Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的四维零数组_Python_Arrays_Numpy - Fatal编程技术网

python中的四维零数组

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)

我想用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)
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