猿问

将数组的元素与标量进行比较,并在Python中获取最大值

我想将一个数组的元素与一个标量进行比较,并获得一个具有最大比较值的数组。那是我想打电话给

import numpy as npnp.max([1,2,3,4], 3)

想要得到

array([3,3,3,4])

但是我明白了

ValueError: 'axis' entry is out of bounds

当我跑步时

np.max([[1,2,3,4], 3])

我懂了

[1, 2, 3, 4]

这是列表中的两个元素之一,而不是我想要的结果。是否有一个Numpy解决方案能够像其他内置函数一样快速?


BIG阳
浏览 204回答 2
2回答

阿波罗的战车

这已经内置在numpy中,具有以下功能np.maximum:a = np.arange(1,5)n = 3np.maximum(a, n)#array([3, 3, 3, 4])这不会改变a:a#array([1, 2, 3, 4])如果您想像@jamylak的答案中那样改变原始数组,可以给出a以下输出:np.maximum(a, n, a)#array([3, 3, 3, 4])a#array([3, 3, 3, 4])文件:maximum(x1, x2[, out])数组元素的逐元素最大值。等同于np.where(x1 > x2, x1, x2)但速度更快,并且可以正常广播。

呼如林

>>> import numpy as np>>> a = np.array([1,2,3,4])>>> n = 3>>> a[a<n] = n>>> aarray([3, 3, 3, 4])
随时随地看视频慕课网APP

相关分类

Python
我要回答