我正在從.txt文件正確調用數據時遇到問題。IndexError:數組,日期時間字符串和numpy genfromtxt的索引太多
我的數據的樣品看起來像這樣:
file1.txt
Time: ID: W: X: Y: Z:
2016/02/25:19:08:41 006124189X 769 372 363 348
2016/02/25:21:41:13 006124189X 769 362 308 390
2016/02/25:22:38:20 006124189X 769 362 363 390
2016/02/26:07:37:42 006124189X 769 372 272 366
2016/02/26:08:54:34 006124189X 769 372 272 366
2016/02/26:09:57:04 006124189X 769 372 363 371
其中第一列是一個時間字符串,第二個是由數字和字母組成的編號,其他都只是範圍的整數0-10000 。
我最終會嘗試根據記錄的時間值繪製一些這些整數值,但目前我只是試圖讓數據被正確調用。我目前的代碼設置爲:
import numpy as np
import matplotlib.pyplot as plt
import pylab
import datetime
#File name for data input.
datafile = 'file1.txt'
#Names to be used for column headers.
names = ['Time', 'ID', 'W, 'X', 'Y', 'Z']
#Read Data from file into array. Skipping the first line.
#Datatypes used, object for Time, String for ID and Integer for the rest.
data = np.genfromtxt(datafile, skip_header=1, dtype="Object,S11,i8,i8,i8,i8", names = ['Time', 'ID', 'W', 'X', 'Y', 'Z'])
#Print the data called to check it works.
print data
#Designating each column to a name.
Time = data[:,0]
ID = data[:,1]
W = data[:,2]
X = data[:,3]
Y = data[:,4]
Z = data[:,5]
#Print designated column.
print Time
我試圖儘可能地確定我在做什麼。
最後,我想用matplotlib添加一些像這樣到最後包括一個情節:
plt.plot(Time,W, label='W vs Time')
plt.xlabel('Time',fontsize=12)
plt.ylabel('W',fontsize=12)
plt.show()
然而,當腳本在其目前的形式運行它給人的錯誤:
line 15, in <module>
Time = data[:,0]
IndexError: too many indices for array
這個錯誤對於各個列是相同的,即
line 16, in <module>
W = data[:,2]
IndexError: too many indices for array
打印數據行b efore會正確輸出文件中的所有數據,每次顯示爲'2016/02/25:19:08:32'等字符串,包括引號。
我不確定如何正確處理這裏的數據表單。如果我只是設置dtype = i8,那麼我可以調用除Time和ID列之外的任何數據列,這將可以調用所有行的-1值。
我曾嘗試以下this scipy doc,還試圖this stack page of a similar thing,我不能去上班。
任何幫助表示讚賞。
你可以通過名字,因爲你已經在陣列結構 – 2016-02-29 12:59:17
中已經提供的信息如果你的意思是除去像'時間=數據線訪問它們[:0]',只是使用數據= NP使用的名稱。名稱「時間」沒有定義」 –