gpt4 book ai didi

python - 从 3D 数组中减去 2D 数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:05 25 4
gpt4 key购买 nike

我有一个 3D 数组,其中包含许多 2D 数组。我还有一个二维数组。我想从 3D 数组的每个元素中减去这个 2D 数组。我这样做了(BT_19 是 3D 数组,Avg_19 是二维数组。A 是我创建的新数组)

A=[]
for i in len(range(BT_19)):
ref = BT_19[i]-Avg_19
A = np.concatenate((A,[ref]),axis=0)
print A

然后我得到了这个错误,


TypeError                                 Traceback (most recent call last)
<ipython-input-83-429b94e5b4d6> in <module>()
1 A=[]
2 abc=0
----> 3 for i in len(range(BT_19)):
4 ref = BT_19[i]-Avg_19
5 A = np.concatenate((A,[ref]),axis=0)

TypeError: only length-1 arrays can be converted to Python scalars

最佳答案

您可以使用 Numpy 的广播概念执行计算,因为您有一个 2D 矩阵,您的操作(减法)将按如下方式广播到 3D 矩阵:

In [1]: x = np.array([[1,1], [2,2]])
In [2]: x
Out[2]:
array([[1, 1],
[2, 2]])
In [3]: y = np.random.randint(0,10, size=(5,2,2))

In [4]: y.shape
Out[4]: (5, 2, 2)

In [5]: y
Out[5]:
array([[[3, 2],
[4, 6]],

[[9, 9],
[5, 8]],

[[0, 9],
[5, 2]],

[[6, 3],
[9, 5]],

[[5, 6],
[5, 0]]])

In [6]: y - x
Out[6]:
array([[[ 2, 1],
[ 2, 4]],

[[ 8, 8],
[ 3, 6]],

[[-1, 8],
[ 3, 0]],

[[ 5, 2],
[ 7, 3]],

[[ 4, 5],
[ 3, -2]]])

关于python - 从 3D 数组中减去 2D 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43844759/

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