如何在numpy数组中找到对应的最大值

2024-06-08 01:27:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从紫外线/可见光获得了数据

UV/VIS

我的目标是在330nm后找到一个波长,并找到最大吸收率。所以在这种情况下,在420nm处的最高值大约为0.4

CSV文件如下所示

Wavelength (nm) Absorbance (AU) Std.Dev.
190 2.458802223 0.012281572
191 2.523416042 0.011004285
192 2.609054089 0.014727822 
193 2.6453619   0.00920296
.
.

等等

这是我的密码

^{pr2}$

我用改变了阵法np.加载文本. 但我被困在这里了

我用过

for x in range(330,900):
    print(int(max(y)))

但这一个打印整个y数组,(900-330)次。在

谢谢各位!在


Tags: 文件csv数据dev密码目标情况au
1条回答
网友
1楼 · 发布于 2024-06-08 01:27:28

为了读入显示的数据,需要使用delimiter = ' '而不是,。但这可能是一个复制的问题。在

现在有两个数组,您想在另一个(y)最大的位置找到其中一个(x)的值,您可以这样做

x[np.argmax(y)]

^{}找到最大值的索引时。在

直接使用xy当然会得到190左右的不想要的结果。所以首先需要对数组进行切片。在您的例子中,x值之间的步长似乎等于1。这就非常容易:

^{pr2}$

对于更一般的情况,可以使用布尔切片

xc = x[x >= 330]
yc = y[x >= 330]
print xc[np.argmax(yc)]

只是为了确保背景中没有其他错误:当你读到的文件名为Rhodamine,你显示的图形不能是罗丹明,因为它在黄/绿(~550 nm)中有吸收,而不是在420 nm处。

相关问题 更多 >

    热门问题