在NumPy数组中进行向量化加法。

huangapple go评论63阅读模式
英文:

vectorized addition in numpy array

问题

要将NumPy数组中列之间的加法向量化,你可以使用以下方法:

import numpy as np

ary = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9], [9, 10, 11]])

# 使用切片和广播执行列之间的加法
ary[:, 0] += ary[:, 1]

这将使用广播机制在所有行中将第一列与第二列相加,以实现向量化操作,而无需循环。

英文:

How do I vectorize addition between columns in a numpy array? For example, what is the fastest way to implement something like:

import numpy

ary = numpy.array([[1,2,3],[3,4,5],[5,6,7],[7,8,9],[9,10,11]])
for i in range(ary.shape[0]):
    ary[i,0] += ary[i,1]

答案1

得分: 2

使用 numpy.ndarray.sum 在轴 1 上:

ary[:,0] = ary.sum(axis=1)

或者使用切片上的直接加法执行相同操作:

ary[:,0] = ary[:, 0] + ary[:, 1]
英文:

With numpy.ndarray.sum over axis 1:

ary[:,0] = ary.sum(axis=1)

Or the same with straightforward addition on slices:

ary[:,0] = ary[:, 0] + ary[:, 1]

huangapple
  • 本文由 发表于 2023年2月14日 06:34:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/75441827.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定