【问题标题】:Dividing elements of array Python划分数组Python的元素
【发布时间】:2017-10-09 10:03:22
【问题描述】:

您好,我是一名初级程序员,我知道必须有一种简单的方法可以做到这一点,但由于某种原因找不到答案。我有两个数组,只想将每个元素除以另一个数组中的元素。例如

a= np.array([2,4,6,8,10,12])
b=np.array([2,1,2,1,2,1])
so that the result is (1,4,3,8,5,12)....

我尝试在 for 循环中执行此操作:

for i in range(a):
    c = a[i]/b[i]

但它不起作用并给出错误 "TypeError: 只有一个元素的整数数组才能转换为索引"

【问题讨论】:

  • 尝试不使用for 循环的a / bnumpy 可以对整个数组进行数学运算。
  • a/b 将像其他人指出的那样工作。另一个问题是你有range(a),你应该使用range(len(a))
  • @VBB 是的,我发现这是我真正的问题,谢谢!

标签: python arrays python-3.x loops for-loop


【解决方案1】:

您可以自己划分数组 (a/b)

In [1]: import numpy as np

In [2]: a = np.array([2,4,6,8,10,12])

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

In [4]: a/b
Out[4]: array([ 1,  4,  3,  8,  5, 12])

发生这种情况是因为 numpy 重载了 ndarray__div__ 方法来划分数组的元素并输出结果数组(实现主要是在 C 代码中,因此很难将您链接到确切的位置发生这种情况)

【讨论】:

  • 请不要忘记澄清由于 Numpy 运算符重载的性质,直接除法是可能的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多