gpt4 book ai didi

python - Numpy 列减法;从 (k,) 数组中的值减去 (k,n) 数组

转载 作者:行者123 更新时间:2023-11-28 21:53:27 25 4
gpt4 key购买 nike

说我有

x=np.random.random((3,10))
y=np.array([1,10,100])

我想从 y 中减去 x 每一列中的值。我可以这样做:

np.array([y]*10).T-x

但是,这涉及创建一个大小为 y 10 倍的新数组(在本例中)。我也可以想象使用 for 循环。任何人都可以建议更好的方法吗?

最佳答案

只需垂直堆叠 y 并减去 x。例如:

y[:, None] - x    # insert a new axis into y (creating a new view of y)

np.vstack(y) - x  # stack y vertically (creating a copy of y)

这是可行的,因为 y 现在具有 (3, 1) 的形状,因此可以使用具有 形状的 x 进行广播(3, 10)

如果 x 的每个尾部维度(即从形状元组的末尾开始)相等,则

xy 可以一起广播到 y 的尾部维度,或者比较的维度之一为 1。在本例中,y 的尾部维度更改为 1,因此两个数组是兼容的。

关于python - Numpy 列减法;从 (k,) 数组中的值减去 (k,n) 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26313200/

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