numpy中loadtxt 的用法詳解

2022-10-04 19:18:13 字數 2008 閱讀 1453

numpy中有兩個函式可以用來讀取檔案,主要是txt檔案, 下面主要來介紹這兩個函式的用法

第乙個是loadtxt, 其一般用法為

numpy.loadtxt(fname, dtype=, comments='#', delimiter=none, converters=none, skiprows=0, usecols=none, unpack=false, ndmin=0)

上面給出了loadtxt所有的關鍵字引數, 這裡我們可以來一一解釋並給出示例

這裡我們使用的是jupyter notebook, 可以實現互動式的介面操作

%%writefile test.txt # 這是用來寫入檔案的**

1 2 3 4

2 3 4 5

3 4 5 6

4 5 6 7

首先給出最簡單的loadtxt的**

import numpy as np

a = np.loadtxt('test.txt')#最普通的loadtxt

print(a)

實際上就是直接寫檔名, 其他關鍵字引數都是預設的。輸出為

[[1. 2. 3. 4.]

[2. 3. 4. 5.]

[3. 4. 5. 6.]

[4. 5. 6. 7.]]

a為浮點數的原因為python預設的數字的資料型別為雙精度浮點數

%%wri程式設計客棧tefile test.txt

a b c

1 2 3

4 5 6

7 8 9

a = np.loadtxt('test1.txt', skiprows=1, dtype=int)

print(a)

這裡的skiprows是指跳過前1行, 如果設定skiprows=2, 就會跳過前兩行,  這裡的輸出為

[[1 2 3]

[4 5 6]

[7 8 9]]

%%writefile test.txt

a b c

1 2 3

# aaa

www.cppcns.com4 5 6

7 8 9

a = np.loadtxt('test2.txt', dtype=int, skiprows=1, comments='#')

print(a)

這裡的comme程式設計客棧nt的是指, 如果行的開頭為#就會跳過該行, 這裡輸出為

[[1 2 3]

&nb程式設計客棧sp;[4 5 6]

[7 8 9]]

%%writefile test.txt

a b c

1, 2, 3

# aa aaa

4, 5, 6

7, 8, 9

(a, b) = np.loadtxt('test.txt', dtype=int, skiprows=1, comments='#', delimiter=',', usecols=(0, 2), unpack=true)

print(a, b)

這裡的usecols是指只使用0,2兩列, unpack是指會把每一列當成乙個向量輸出, 而不是合併在一起。

[1 4 7] [3 6 9]

最後介紹converters引數, 這個是對資料進行預處理的引數, 我們可以先定義乙個函式, 這裡的converters是乙個字典, 表示第零列使用函式add_one來進行預處理

def add_one(x):

return int(x)+1#注意到這裡使用的字元的資料結構

(a, b) = np.loadtxt('test.txt', dtype=int, skiprows=1, converters=, comments='#', delimiter=',', usecols=(0, 2), unpack=true)

print(a, b)

輸出結果為:

[2 5 8] [3 6 9]

補乙個github的jupyter-notebook鏈結...

本文標題: numpy中loadtxt 的用法詳解

本文位址:

Numpy中的函式

生成用函式 效果np.array x 將輸入資料轉化為乙個ndarray np.array x,dtype 將輸入資料轉化為乙個型別為type的ndarray np.asarray array 將輸入資料轉化為乙個新的 copy ndarray np.ones n 生成乙個n長度的一維全一ndarr...

Numpy中的transpose函式

transpose 的操作物件是矩陣。我們用乙個例子來說明這個函式 0 1 2 3 4 5 6 7 這是乙個shape為 2,2,2 的矩陣,現在對它進行transpose操作。首先我們對矩陣的維度進行編號,上述矩陣有三個維度,則編號分別為0,1,2,而transpose函式的引數輸入就是基於這個編...

numpy中的陣列切片

如同python中自帶的切片,numpy中也有類似的切片功能。接下來對兩個功能進行一下簡單的對比。首先測試python自帶的功能,在shell視窗中測試如下 in 1 data range 10 in 2 data out 2 0,1,2,3,4,5,6,7,8,9 in 3 data1 data ...