Python 如何附加到数据数组
我是Python的Numpy库新手,我不确定我在这里做错了什么,你能帮我解决这个问题吗 所以,我像这样初始化我的数组Python 如何附加到数据数组,python,numpy,numpy-ndarray,array-broadcasting,python-3.8,Python,Numpy,Numpy Ndarray,Array Broadcasting,Python 3.8,我是Python的Numpy库新手,我不确定我在这里做错了什么,你能帮我解决这个问题吗 所以,我像这样初始化我的数组 A = np.array([]) 然后我训练在这个数组中添加一个新的数组X,它的形状类似于(1000,32,32),如果它有任何重要性 np.insert(A, X) 这里的问题是,如果我在此之后检查ndarray A,它是空的,即使ndarray X中有元素。 你能解释一下我到底做错了什么吗 如果使用np.append,请确保回写到A,如A=np.append(A,X)—
A = np.array([])
然后我训练在这个数组中添加一个新的数组X,它的形状类似于(1000,32,32),如果它有任何重要性
np.insert(A, X)
这里的问题是,如果我在此之后检查ndarray A,它是空的,即使ndarray X中有元素。
你能解释一下我到底做错了什么吗 如果使用
np.append
,请确保回写到A
,如A=np.append(A,X)
——顶级numpy函数,如np.insert
和np.append
,通常是不可变的,因此即使它返回一个值,存储它也是您的工作<如果使用append,code>np.array喜欢展平np.ndarray
,所以老实说,我认为您只需要为a使用一个常规的列表,并且append方法是可变的,所以不需要写回
>>> A = []
>>> X = np.ndarray((1000,32,32))
>>> A.append(X)
>>> print(A)
[array([[[1.43351171e-316, 4.32573840e-317, 4.58492919e-320, ...,
1.14551501e-259, 6.01347002e-154, 1.39804329e-076],
[1.39803697e-076, 1.39804328e-076, 1.39642638e-076, ...,
1.18295070e-076, 7.06474122e-096, 6.01347002e-154],
[1.39804328e-076, 1.39642638e-076, 1.39804065e-076, ...,
1.05118732e-153, 6.01334510e-154, 3.24245662e-086],
...
因此,关于numpy数组,首先需要了解的是它们具有形状
,以及许多维度。希望错误信息是清楚的
与另一个1d数组连接可以工作:
In [14]: np.concatenate([A, np.arange(3)])
Out[14]: array([0., 1., 2.])
但那只是np.arange(3)
。连接对我们没有任何帮助。好的,你可以想象这样开始一个循环。但是不要。这是没有效率的
只要维度遵守文档中指定的规则,就可以轻松地连接数组列表。只要认真对待数组的维度,这些规则是合乎逻辑的
In [15]: X = np.ones((1000,32,32))
In [16]: np.concatenate([X,X,X], axis=1).shape
Out[16]: (1000, 96, 32)
numpy.ndarray
对象是固定大小的数组.insert
和.append
返回新的数组对象。我认为您需要从np开始。连接。用它的例子练习。注意尺寸的数量。你的A
的形状是什么?这与X
有什么共同之处吗?不要试图模拟[]
和列出追加
。为什么要将X
附加到A
?为什么不直接使用X
?如果没有提供轴,则是np.append
将输入展平。阅读文档,或者更好地阅读函数自己的代码。时间不长。
In [15]: X = np.ones((1000,32,32))
In [16]: np.concatenate([X,X,X], axis=1).shape
Out[16]: (1000, 96, 32)