python - NumPy 最小/最大就地赋值

标签 python numpy

是否可以在没有额外副本的情况下使用 NumPy 多维数组执行最小/最大就地赋值?

比如说,ab 是两个 2D numpy 数组,我想要 a[i,j] = min(a[i,j ], b[i,j]) 用于所有 ij

一种方法是:

a = numpy.minimum(a, b)

但是根据文档,numpy.minimum 创建并返回一个新数组:

numpy.minimum(x1, x2[, out])
Element-wise minimum of array elements.
Compare two arrays and returns a new array containing the element-wise minima.

所以在上面的代码中,它会创建一个新的临时数组(ab 的最小值),然后将它赋值给a并处理它,对吗?

有没有什么办法可以像 a.min_with(b) 这样将最小结果原地分配回 a

最佳答案

numpy.minimum() 采用可选的第三个参数,即输出数组。您可以在那里指定 a 以将其修改到位:

In [9]: a = np.array([[1, 2, 3], [2, 2, 2], [3, 2, 1]])

In [10]: b = np.array([[3, 2, 1], [1, 2, 1], [1, 2, 1]])

In [11]: np.minimum(a, b, a)
Out[11]: 
array([[1, 2, 1],
       [1, 2, 1],
       [1, 2, 1]])

In [12]: a
Out[12]: 
array([[1, 2, 1],
       [1, 2, 1],
       [1, 2, 1]])

关于python - NumPy 最小/最大就地赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14428183/

相关文章:

Python 多个用户同时追加到同一个文件

python - 在 python 中从 VTK 文件中检索面和点

python - 如何在python中更改目录youtube_dl

python - 两个日期之间的日期数

python - 更好的方法去堆叠 Pandas 行?

amazon-web-services - aws lambda 上的 Sklearn

python - 量化 numpy 向量的快速方法

python - Python 的 Numpy 库中的复合赋值运算符

c++ - 在Python中解析.c/.cpp/.py源文件以获取包含的函数列表

python - CSV 到带有切片行的 Pandas 羽化