在Python中创建多维零数组

11 投票
4 回答
51041 浏览
提问于 2025-04-17 18:58

我需要创建一个多维的零数组。

对于二维(D=2)或三维(D=3),这很简单,我会用:

a = numpy.zeros(shape=(n,n)) 

或者

a = numpy.zeros(shape=(n,n,n))

那么对于更高维度的情况,我该如何创建一个长度为n的数组呢?

4 个回答

3
In [4]: import numpy

In [5]: n = 2

In [6]: d = 4

In [7]: a = numpy.zeros(shape=[n]*d)

In [8]: a
Out[8]: 
array([[[[ 0.,  0.],
         [ 0.,  0.]],

        [[ 0.,  0.],
         [ 0.,  0.]]],


       [[[ 0.,  0.],
         [ 0.,  0.]],

        [[ 0.,  0.],
         [ 0.,  0.]]]])

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

4
>>> sh = (10, 10, 10, 10)
>>> z1 = zeros(10000).reshape(*sh)
>>> z1.shape
(10, 10, 10, 10)

编辑:虽然上面的说法没有错,但有点多余。@mgilson的回答更好。

18

你可以把一个元组 (n,) 乘以你想要的维度数量。比如说:

>>> import numpy as np
>>> N=2
>>> np.zeros((N,)*1)
array([ 0.,  0.])
>>> np.zeros((N,)*2)
array([[ 0.,  0.],
       [ 0.,  0.]])
>>> np.zeros((N,)*3)
array([[[ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.]]])

撰写回答