私は私のデータのサンプルがある以下のnumpyの配列にファイルをロードし、条件は、カラム1Pythonのエラー:空のスライスの平均
で発見されて以来、3列目の値を取りたいです.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のペインに同じコマンドを入力しますが、私はPythonのペインで0.3のために手動で変更した場合は1に注意することができますように、私は私の希望答えを見つける:
In [17]: df[:,3][df[:,1] == 0.3]
Out[17]: array([-33578.20195986])
は、私が何を理解しておりません間違って?
感謝。私はnp.isclose()について知らなかった。ギャラクシーの答えも正しい方向ですが、あなたの提案はより適切です。私がデータを準備したとき、私は欠けている値に注意を払わなかった。 – pmoreira