Numpy列明智的乘法

时间:2014-09-18 09:39:51

标签: python numpy

我有一个相当大的矩阵(500000 * 24)作为ndarray,我想将其单元格与相应的列min相乘。我已经使用for循环完成了此操作,但我一直认为这不是NumPy做事的方式。

是否有正确的方法进行此类操作(我可能还想稍后减去常量)?

提前致谢

2 个答案:

答案 0 :(得分:2)

是的,您可以直接将数组乘以最小向量,如下所示。

import numpy as np

data = np.random.random((500000, 24))
 # This returns an array of size 500,000 that is the row of 24 values
minimum = data.min(axis=1)

data = data * minimum

如果您希望创建一个大小为24的minimum数组(其中最小值为500,000),那么您可以选择axis=0

set of slides讨论了此类操作的工作原理。

答案 1 :(得分:1)

正常乘法不会吗?

import numpy
a = numpy.random.random((4,2))
b = a * numpy.min(a,axis=0)