2024-05-15 21:36:01 发布
网友
我有两个不同大小的Numpy数组A(nx1)和B(mx1)。我想从A的所有元素中减去B的每个元素,因此结果矩阵C(mxn)的元素应该计算为c(i,j) = A(i)-B(j)。有没有使用Numpy的直接无循环计算?在
c(i,j) = A(i)-B(j)
如果使用列表理解,则可以比直接循环更高效:
import numpy as np a = np.array([10, 20, 30, 40]) b = np.array([1, 2]) c = np.array([a - b[j] for j in range(len(b))]) print(c)
输出:
广播:
A = np.array([1,2,3,4,5]) B = np.array([5,4,2,7]) A - B[:, np.newaxis]
您可以使用np.meshgrid
A = np.array([1,2,3,4,5]) B = np.array([5,4,2,7]) a, b= np.meshgrid(A,B) print(a - b) #output:- array([[-4, -3, -2, -1, 0], [-3, -2, -1, 0, 1], [-1, 0, 1, 2, 3], [-6, -5, -4, -3, -2]])
第二个方法:在
如果使用列表理解,则可以比直接循环更高效:
输出:
^{pr2}$广播:
输出:
^{pr2}$您可以使用np.meshgrid
第二个方法:在
^{pr2}$相关问题 更多 >
编程相关推荐