我基本上想要初始化一个空的6张量,如下所示:
a = np.array([[[[[[]]]]]])
有没有比明确写括号更好的方法?
答案 0 :(得分:3)
答案 1 :(得分:2)
您可以执行np.empty(shape = [1] * (dimensions - 1) + [0])
之类的操作。
例如:
>>> a = np.array([[[[[[]]]]]])
>>> b = np.empty(shape = [1] * 5 + [0])
>>> a.shape == b.shape
True
答案 2 :(得分:1)
答案 3 :(得分:1)
使用np.concatenate(a,b,axis = 0)迭代地添加rank-1的行
唐'吨。迭代地创建数组很慢,因为它必须在每一步创建一个新数组。加a
和b
必须在除连接之外的所有维度中匹配。
np.concatenate((np.array([[[]]]),np.array([1,2,3])), axis=0)
会给你尺寸错误。
你唯一可以连接到这样一个数组的是一个大小为0维的数组
In [348]: np.concatenate((np.array([[]]),np.array([[]])),axis=0)
Out[348]: array([], shape=(2, 0), dtype=float64)
In [349]: np.concatenate((np.array([[]]),np.array([[1,2]])),axis=0)
------
ValueError: all the input array dimensions except for the concatenation axis must match exactly
In [354]: np.array([[]])
Out[354]: array([], shape=(1, 0), dtype=float64)
In [355]: np.concatenate((np.zeros((1,0)),np.zeros((3,0))),axis=0)
Out[355]: array([], shape=(4, 0), dtype=float64)
要迭代工作,请从空列表开始,然后append
到它;然后在最后制作阵列。
a = np.zeros((1,1,1,1,1,0))
可以在最后一个轴上与另一个np.ones((1,1,1,1,1,n))
数组连接。
In [363]: np.concatenate((a,np.array([[[[[[1,2,3]]]]]])),axis=-1)
Out[363]: array([[[[[[ 1., 2., 3.]]]]]])