我有一個.txt文件,我需要打開它並創建一個數組(在Python中)。但是,我不想爲數組選擇所有行,除了第一行之外的所有行。Loadfile,從.txt文件到數組的特定行
例如,我的.txt文件上寫着:
1 1 1
1 4 6
4 5 6
8 9 7
和,我想創建一個數組這樣,我可以將它像:
Y= array([[1, 4, 6], [4, 5, 6], [8, 9, 7]])
我需要它概括爲未來的文件創建一個省略第一行文本的數組。
我有一個.txt文件,我需要打開它並創建一個數組(在Python中)。但是,我不想爲數組選擇所有行,除了第一行之外的所有行。Loadfile,從.txt文件到數組的特定行
例如,我的.txt文件上寫着:
1 1 1
1 4 6
4 5 6
8 9 7
和,我想創建一個數組這樣,我可以將它像:
Y= array([[1, 4, 6], [4, 5, 6], [8, 9, 7]])
我需要它概括爲未來的文件創建一個省略第一行文本的數組。
你可以做它抓住除了第一個所有其他線路
with open(file) as f:
Y = [map(int, line.split()) for line in f.readlines()[1:]]
通知的[1:]
。
@ashwinlyengar,如果我想抓住除第一個和最後一個(每行文本文件的行數不同)的每一行,我該怎麼做? (供將來參考) –
如果你有一個名爲''a''的數組,你只需要''a [1:-1]''。數組索引的python格式是'[start:stop:step]'(全部可選),所以你可以指定從哪裏開始,停止,然後跳過多少個元素(例如''a [:: 2] ''給你''a'''的每個第二個元素)。此外,負索引指定數組後面的元素數。這就是爲什麼''[1:-1]''起作用的原因:它基本上意味着「從第一個元素到第二個到最後一個元素的每個元素」。 –
嘗試:
import numpy
data = numpy.loadtxt('data.txt',skiprows=1)
在[{here}]處查看更多選項(http://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html)。 – Developer
如果我想跳過第一行和第三行,我該怎麼做?謝謝。爲了將來的參考 –
@ har.cruz1972爲了完全的靈活性,你可以使用上面的方法和'slicing'。例如,在上面,您可以忽略任何數量的行。然後,對於其餘的工作,例如跳過第三行等,最好使用「切片」。例如,'data = numpy.vstack(data [:2],data [3:])'。使用'masking'可以實現更大的靈活性。 msk = numpy.ones((data.shape [0],))','msk [2] = 0','data = data [msk]'。以這種方式看到任何複雜性都很容易處理。 – Developer
你有什麼迄今所做?確保你發佈你的代碼 - 這不僅有助於我們理解你在做什麼,而且可以讓你更輕鬆地給你提供建議。這也是一種禮貌,因爲它表明你在徵求他人努力之前已經做出了努力。 – Brionius