我的文件「F1」,看起來像這樣的值:的Python:遍歷列表
ID X Y Z
1 439748.5728 7948406.945 799.391875
1 439767.6229 7948552.995 796.977271
1 439805.7229 7948711.745 819.359365
1 439799.3729 7948851.446 776.425797
2 440764.5749 7948991.146 235.551602
2 440504.2243 7948984.796 326.929119
2 440104.1735 7948984.796 536.893601
2 439742.2228 7949003.846 737.887029
2 438580.1705 7949537.247 196.300929
3 438142.0196 7947340.142 388.997748
3 438599.2205 7947333.792 480.580256
3 439126.2716 7947340.142 669.802869
4 438453.1702 7947594.143 600.856103
4 438294.4199 7947657.643 581.018396
4 438167.4197 7947702.093 515.149846
我想運行一個命令(假設印刷,使其在這裏簡單)使用的X,Y ,在文件F1的每個ID值z值
import numpy as np
f1 = ('file1.txt')
id = np.loadtxt(f1, skiprows=1, usecols=[0])
for i in id:
x = np.loadtxt(f1, skiprows=1, usecols=[1])
y = np.loadtxt(f1, skiprows=1, usecols=[2])
z = np.loadtxt(f1, skiprows=1, usecols=[3])
print ('The x, y, z lists of id= %g are:' %(i))
print (x,y,z)
此代碼返回的x,對於f1的每行y和z列表,但我想它返回在x,y和z列出了每種不同ID列的值。
例如,對於ID = 3,它應該返回:
[438142.0196, 438599.2205, 439126.2716] [7947340.142, 7947333.792, 7947340.142] [388.997748, 480.580256, 669.802869]
任何幫助將非常感謝!
你現在這樣做的方式也沒有效率。它多次加載文件。我會說你可以做一些事情:'x,y,z = np.loadtxt(f1,skiprows = 1,usecols = [1,2,3])''。然後x,y,z被自動分配並且可以相應地分配。你會想確保usecols是正確的,雖然它是0索引。因此,1,2,3實際上會獲得列2,3,4相應的numpy.loadtxt參數...但取決於你想要什麼,甚至可以給我更好的答案。我只是想確定更多你實際需要的東西。 – Fallenreaper
你真的需要一個numpy的ndarray嗎? – wwii