gpt4 book ai didi

Python 错误 : Mean of empty slice

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

我想在 numpy 数组中加载一个文件,并在第 3 列中取一个值,因为在第 1 列中找到了一个条件。

以下是我的 .csv 格式数据示例:

step,lambda,rate,etotal 
1001,0.0,0.1,-48044.2760681363
2000,0.0,0.1,-48031.1794623084
3000,0.1,0.1,-43205.9046309046
4000,0.2,0.1,-38388.9135212169
5000,0.3,0.1,-33578.2019598638
6000,0.4,0.1,-28770.5652389722
7000,0.5,0.1,-23964.1873174772
8000,0.7,0.1,-14375.4972097742
9000,0.8,0.1,-9572.458083405
10000,0.9,0.1,-4767.3654814475
11000,1,0.1,32.5943003495421

我的简化代码是:

import numpy as np

df = np.genfromtxt('teste.csv', delimiter = ',')

rate = 0.1
idx = np.arange(0, 1+rate, rate)

for i in idx:
print(df[:,3][df[:,1] == i])

我得到以下输出:

%run "plot_data.py"
0.0 [-48044.27606814 -48031.17946231]
0.1 [-43205.9046309]
0.2 [-38388.91352122]
0.3 []
0.4 [-28770.56523897]
0.5 [-23964.18731748]
0.6 []
0.7 []
0.8 [-9572.4580834]
0.9 [-4767.36548145]
1.0 [ 32.59430035]

可以看到,对于第 1 列中的值 0.3、0.6、0.7,Python 返回一个空数组。我不明白为什么。

如果我在 Python Pane 中键入相同的命令,但在 Python Pane 中手动将 i 更改为 0.3,我会找到我想要的答案,正如您所注意到的:

In [17]: df[:,3][df[:,1] == 0.3]
Out[17]: array([-33578.20195986])

我哪里不理解和做错了什么?

最佳答案

我认为你应该使用 print(df[:,3][np.isclose(df[:,1], i)])。如果您使用比较运算符,可能会出现导致此类错误的浮点不准确。

作为一个单独的问题,您的测试数据对于 lambda = 0.6 没有任何值(value)。我的修复不会解决这个问题,您将需要获取具有该值的数据集或使用另一种算法从周围的值中猜测该值。

关于Python 错误 : Mean of empty slice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835836/

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