英文:
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]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论