【发布时间】:2019-03-28 02:51:44
【问题描述】:
我有一个形状为 (50,50) 的二维数组。我需要从这个数组的每一列中减去一个值,跳过第一列),这是根据列的索引计算的。例如,使用 for 循环它看起来像这样:
for idx in range(1, A[0, :].shape[0]):
A[0, idx] -= idx * (...) # simple calculations with idx
现在,这当然可以正常工作,但速度很慢,而且性能对我的应用程序来说至关重要。我尝试使用 np.fromfunction() 计算要减去的值,然后从原始数组中减去它,但结果与 for 循环迭代减法获得的结果不同:
func = lambda i, j: j * (...) #some simple calculations
subtraction_matrix = np.fromfunction(np.vectorize(func), (1,50))
A[0, 1:] -= subtraction_matrix
我做错了什么?或者有没有其他更好的方法?任何帮助表示赞赏!
【问题讨论】:
-
你能举个输入/输出的例子吗?
标签: python arrays numpy matrix