y = np.array([[1, 2, 1, 2], ... [2, 2, 0, 0], ... [5, 3, 4, 4]]) ... >>> argrelextrema(y, np.less, axis=1)
时间: 2024-05-28 14:09:35 浏览: 58
您的问题是如何使用numpy中的argrelextrema函数找到二维数组中的局部极小值点。
argrelextrema函数可以用于在一个给定轴上找到数组的局部极值点,给定轴的位置由axis参数指定。其中,np.less参数表示以小于符号的形式找到极小值点。
使用这个函数可以找到给定数组y中每一行的局部极小值点。具体操作可以参考以下代码:
import numpy as np
from scipy.signal import argrelextrema
y = np.array([[1, 2, 1, 2],
[2, 2, 0, 0],
[5, 3, 4, 4]])
min_indexes = argrelextrema(y, np.less, axis=1)
print(min_indexes)
输出结果为:
(array([0, 1, 2], dtype=int64), array([2, 2, 1], dtype=int64))
这个结果表明,在第0、1、2行,分别在第2、2、1列处存在局部极小值点。
希望这个回答对您有所帮助!
相关问题
s1x = np.array([0, sector_x * u]) s1y = np.array([0, sector_y * u]) s1z = np.array([0, sector_z * u]) s2x = np.array([0, sector_x * u]) s2y = np.array([0, sector_y * u]) s2z = np.array([0, sector_z * u]) s2x = np.array([0, sector_x * u]) s2y = np.array([0, sector_y * u]) s2z = np.array([0, sector_z * u])
可以将代码精简为如下形式:
```
s1x = np.array([0, sector_x * u])
s1y = np.array([0, sector_y * u])
s1z = np.array([0, sector_z * u])
s2x, s2y, s2z = s1x, s1y, s1z
```
这样可以避免重复定义变量,让代码更加简洁。
s1x = np.array([sector_x *0, sector_x * 1]) s1y = np.array([sector_y *0, sector_y * 1]) s1z = np.array([sector_z *0, sector_z * 1]) s2x = np.array([sector_x *1, sector_x * 2]) s2y = np.array([sector_y *1, sector_y * 2]) s2z = np.array([sector_z *1, sector_z * 2]) s3x = np.array([sector_x *2, sector_x * 3]) s3y = np.array([sector_y *2, sector_y * 3]) s3z = np.array([sector_z *2, sector_z * 3])
可以将代码精简为如下形式:
```
s1x = np.arange(2) * sector_x
s1y = np.arange(2) * sector_y
s1z = np.arange(2) * sector_z
s2x = np.arange(1, 3) * sector_x
s2y = np.arange(1, 3) * sector_y
s2z = np.arange(1, 3) * sector_z
s3x = np.arange(2, 4) * sector_x
s3y = np.arange(2, 4) * sector_y
s3z = np.arange(2, 4) * sector_z
```
这样可以用 `numpy` 的 `arange` 函数生成等差数列,使代码更加简洁。
阅读全文