gpt4 book ai didi

python - NumPy:从记录的数值数组中获取最小值/最大值

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:22 24 4
gpt4 key购买 nike

我有一个 NumPy 记录 float 组:

import numpy as np
ar = np.array([(238.03, 238.0, 237.0),
(238.02, 238.0, 237.01),
(238.05, 238.01, 237.0)],
dtype=[('A', 'f'), ('B', 'f'), ('C', 'f')])

如何从这个记录数组中确定最小值/最大值?我通常尝试 ar.min() 失败:

TypeError: cannot perform reduce with flexible type

我不确定如何将值展平为更简单的 NumPy 数组。

最佳答案

最简单和最有效的方法可能是查看您的数组为 simple 2D array of floats :

ar_view = ar.view((ar.dtype[0], len(ar.dtype.names)))

这是结构化数组的二维数组 View :

print ar_view.min(axis=0)  # Or whatever…

此方法速度很快,因为没有创建新数组(对 ar_view 的更改会导致对 ar 的更改)。但是,它仅限于像您这样的情况,其中所有记录字段都具有相同的类型(此处为 float32)。

一个优点是此方法保持原始数组的二维结构不变:您可以在每个“列” (axis=0) 中找到最小值,对于实例。

关于python - NumPy:从记录的数值数组中获取最小值/最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com