gpt4 book ai didi

python - 未成功追加到空 NumPy 数组

转载 作者:IT老高 更新时间:2023-10-28 22:01:20 25 4
gpt4 key购买 nike

我正在尝试使用 append 用值填充一个空(不是 np.empty!)数组,但我遇到了错误:

我的代码如下:

import numpy as np
result=np.asarray([np.asarray([]),np.asarray([])])
result[0]=np.append([result[0]],[1,2])

我得到了:

ValueError: could not broadcast input array from shape (2) into shape (0)

最佳答案

我可能理解错了这个问题,但是如果你想声明一个特定形状但里面没有任何东西的数组,以下可能会有所帮助:

初始化空数组:

>>> a = np.zeros((0,3)) #or np.empty((0,3)) or np.array([]).reshape(0,3)
>>> a
array([], shape=(0, 3), dtype=float64)

现在您可以使用此数组向其追加形状相似的行。请记住,numpy 数组是不可变的,因此每次迭代都会创建一个新数组:

>>> for i in range(3):
... a = np.vstack([a, [i,i,i]])
...
>>> a
array([[ 0., 0., 0.],
[ 1., 1., 1.],
[ 2., 2., 2.]])

np.vstack 和 np.hstack 是组合 numpy 数组最常用的方法,但来自 Matlab 我更喜欢 np.r_ 和 np.c_:

连接一维:

>>> a = np.zeros(0)
>>> for i in range(3):
... a = np.r_[a, [i, i, i]]
...
>>> a
array([ 0., 0., 0., 1., 1., 1., 2., 2., 2.])

连接行:

>>> a = np.zeros((0,3))
>>> for i in range(3):
... a = np.r_[a, [[i,i,i]]]
...
>>> a
array([[ 0., 0., 0.],
[ 1., 1., 1.],
[ 2., 2., 2.]])

连接列:

>>> a = np.zeros((3,0))
>>> for i in range(3):
... a = np.c_[a, [[i],[i],[i]]]
...
>>> a
array([[ 0., 1., 2.],
[ 0., 1., 2.],
[ 0., 1., 2.]])

关于python - 未成功追加到空 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com