gpt4 book ai didi

python - 如何在 numpy 中将一个数组除以另一个数组元素?

转载 作者:行者123 更新时间:2023-12-05 03:52:06 25 4
gpt4 key购买 nike

我有两个数组,我希望一个数组的所有元素除以第二个数组。例如,

In [24]: a = np.array([1,2,3])                                                      

In [25]: b = np.array([1,2,3])

In [26]: a/b
Out[26]: array([1., 1., 1.])

In [27]: 1/b
Out[27]: array([1. , 0.5 , 0.33333333])

enter image description here

这不是我想要的答案,我想要的输出是这样的(我们可以看到a的所有元素都除以b)

In [28]: c = []                                                                     

In [29]: for i in a:
...: c.append(i/b)
...:

In [30]: c
Out[30]:
[array([1. , 0.5 , 0.33333333]),
array([2. , 1. , 0.66666667]),
In [34]: np.array(c)
Out[34]:
array([[1. , 0.5 , 0.33333333],
[2. , 1. , 0.66666667],
[3. , 1.5 , 1. ]])

enter image description here

但我不喜欢 for 循环,它对于大数据来说太慢了,那么 numpy 包中是否包含一个函数或任何好的(更快)方法来解决这个问题?

最佳答案

在纯numpy中做起来很简单,你可以使用broadcasting计算outer product两个向量的(或任何其他外部操作):

import numpy as np

a = np.arange(1, 4)
b = np.arange(1, 4)

c = a[:,np.newaxis] / b

# array([[1. , 0.5 , 0.33333333],
# [2. , 1. , 0.66666667],
# [3. , 1.5 , 1. ]])

这是可行的,因为 a[:,np.newaxis](3,) 形数组 a 的维度增加到 a (3, 1) 形数组,可用于所需的广播操作。

关于python - 如何在 numpy 中将一个数组除以另一个数组元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62358133/

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