Numpy學習筆記

2021-08-10 16:05:27 字數 2164 閱讀 8913

(測試檔案裡的資料排列型別最好是有規律的,不可以隨便,否則將發生一些錯誤)

genfromtxt函式

- genfromtxt函式建立陣列**資料

- genfromtxt主要執行兩個迴圈運算。第乙個迴圈將檔案的每一行轉換成字串序列。第二個迴圈將每個字串序列轉換為相應的資料型別。

- genfromtxt能夠考慮缺失的資料,但其他更快和更簡單的函式像loadtxt不能考慮缺失值。

尤其要注意各個引數的使用搭配,不可以胡亂使用

import numpy
numbers = numpy.genfromtxt("***.txt",delimiter=",",dtype=str,skip_header=1,autostrip=true,comments="#",names=ture,usercols=(0,-1),\
converters={})
array_1 = numbersp[,] #可以讀取相應的資料,參考切片

「***.txt」

genfromtxt的開啟檔案,當將要開啟的物件和程式不在同乙個資料夾下時需要寫出絕對路徑。

delimiter=","

- genfromtxt分割每個非空行成乙個字串序列。空的行或注釋行跳過。

- 分割符並不侷限於單個字元,任何字串就可以了。

- 分割乙個固定寬度的檔案,列的寬度被定義為乙個給定的字元數。在這種情況下,我們需要將分隔符設定成乙個整數(如果所有的列有相同的大小)或乙個整數序列(如果列可以有不同的大小)。

dtype=str

我們從檔案讀取的字串序列要轉換為其他型別資料時需設定dtype引數。預設是float型別。

乙個特殊的值none,在這種情況下,每個列的型別有自身資料決定。將引數設定成none效率較低。因為它會從布林值開始檢驗,然後是整型,浮點型,複數最後是字串,直到滿足條件為止。

>>> data = "123456789\n  4  7 9\n  4567 9"

>>> np.genfromtxt(stringio(data), delimiter=(4, 3, 2))

array([[ 1234.,  567.,    89.],      [    4.,    7.,    9.],      [    4.,  567.,    9.]])

autostrip=true

當把一行分割成乙個字串序列,序列中的每一項前後的多餘空格還存在,可以將autostrip引數設定為true(注意首字母要大寫,小寫將報錯),去掉空格。

comments="#"

comments引數是乙個字串,標誌著乙個注釋的開始符號。預設是"#",在轉換過程中注釋標記可能發生在任何地方。任何字元出現在在注釋標記之後會被忽略。注意

當可選的引數names= true,第一行檢查到注釋行會被認為是列的名稱。

names=true

可以將names引數設定為true並跳過第一行,程式將把第一行作為列名稱,即使第一行被注釋掉了也會被讀取。或可以使用dtype設定名稱,也可以重寫names,預設的names是none,當names=none時,將有numpy產生一些標準預設的值"f%i",我們可以通過defaultfmt改變預設格式。

skip_header和skip_footer

乙個檔案的頁首可能會阻礙檔案的處理。在這種情況下,我們需要使用skip_header可選引數。這個引數的值必須是乙個整數,跳過檔案開頭的對應的行數,然後再執行任何其他操作。同樣的,我們通過使用skip_footer屬性和n的值可以跳過檔案的最後n行。預設值都為0.

usercols=(0,-1)

這個引數接受乙個整數或乙個整數序列作為索引。第一列的索引0,-1對應最後一列。如果列有名稱,我們也可以將usecols引數設定為他們的名稱,或者包含列名稱乙個字串序列或逗號分隔的字串。也可以使用切片讀取:[:,:](取所有行,所有列),這種方法更加靈活。

-converters={}

這個引數的值通常是乙個以列索引或列名稱作為鍵和乙個轉換函式作為值的字典。這些轉換函式可以是實際的函式或lambda函式。在任何情況下,他們應該只接受乙個字串作為輸入和輸出和只有乙個想要得到的元素型別。

引數解釋參考:

numpy學習筆記

1 array.ndim 用來輸出陣列的維度 2 array.shape 用來輸出陣列的形狀 3 arry.size 用來輸出陣列的大小見jupyter notebook的numpy function list 生成函式基本運算 直接用陣列的相加減乘除。也就是相對應的元素間的作用。關係運算 陣列元素...

NumPy學習筆記

example np.version np.array 1,2,3 4,5,6 np.zeros 3 3 np.ones 2 3,4 np.eye 3 np.range 5 0,1,2,3,4 np.random.rand 2,3 np.random.randint 5,size 2 3 value...

Numpy學習筆記

np.shape 檢視陣列維度 np.dtype 檢視資料型別 np.ndim 檢視陣列維度,列數 np.random.rand 2,3 生成2行3列的高斯隨機數組 np.arange 5 np.arange 0,5 array 0,1,2,3,4 np.array 2,3,4 dtype np.i...