當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python NumPy loadtxt方法用法及代碼示例


NumPy 的 loadtxt(~) 方法讀取文本文件,並將其內容解析為 NumPy 數組。

參數

1. fname | string

文件的名稱。如果該文件與腳本不在同一目錄中,請確保也包含該文件的路徑。

2. dtype | stringtype | optional

所構造數組所需的數據類型。默認情況下,dtype=float

3. comments | stringliststrings | optional

如果您的輸入文件包含注釋,那麽您可以指定標識注釋的內容。默認情況下, comments="#" ,即同一行中 # 後麵的字符將被視為注釋。如果您的文本文件不包含任何注釋,您可以設置None

4. delimiter | string | optional

用於分隔數據的字符串。默認情況下,分隔符是空格。

5. converters | dict<int,function> | optional

您可以應用映射來轉換列值。鍵是列的整數索引,值是所需的映射。檢查下麵的示例以進行說明。默認情況下,dict=None

6. skiprows | int | optional

開頭要跳過的行數。請注意,這包括評論。默認情況下,skiprows=0

7. usecols | intsequence | optional

您要讀取的列的整數索引。默認情況下, usecols=None ,即讀取所有列。

8. unpack | boolean | optional

您可以通過設置 unpack=True 來單獨檢索列數組,而不是使用一個巨大的 Numpy 數組。例如,col_one, col_two = np.loadtxt(~, unpack=True) 。默認情況下,unpack=False

9. ndmin | int | optional

您想要的最小維度數。允許的值為 012

10.encoding | string | optional

讀取文件時使用的編碼(例如 "latin-1""iso-8859-1" )。默認情況下,encoding="bytes"

11.max_rows | int | optional

要讀取的最大行數。默認情況下,讀取所有行。

返回值

包含導入數據的 NumPy 數組。

例子

基本用法

假設我們有以下名為 sample.txt 的 text-file :

1 2 3 4
5 6 7 8

要導入此文件:

a = np.loadtxt("sample.txt")
a



array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]])

請注意,此 Python 腳本與 sample.txt 位於同一目錄中。

另外,請注意 Numpy 選擇的默認數據類型是 float64 ,無論文本文件中的數字是否都是整數:

print(a.dtype)



float64

指定所需的數據類型

我們可以使用 dtype 指定類型,而不是使用默認的 float64

a = np.loadtxt("sample.txt", dtype=int)
a



array([[1, 2, 3, 4],
       [5, 6, 7, 8]])

處理評論

假設我們的sample.txt文件如下:

1 2 3 4    # I'm the first row!
5 6 7 8    // I'm the second row!

要刪除 text-file 中的注釋,請指定 comments

a = np.loadtxt("sample.txt", comments=["#", "//"])
a



array([[1., 2., 3., 4.],
       [5., 6., 7., 8.]])

指定自定義分隔符

假設我們的sample.txt文件如下:

1,2
3,4

要使用逗號作為分隔符:

a = np.loadtxt("sample.txt", delimiter=",")
a



1,2
3,4

指定轉換器

假設我們的sample.txt文件如下:

1 2
3 4

舉個任意的例子,假設我們想將第一列的所有值加 10,並使第二列的所有值都為 20:

a = np.loadtxt("sample.txt", converters={0: lambda x: int(x) + 10, 1: lambda x: 20})
a



array([[11., 20.],
       [13., 20.]])

跳行

假設我們的sample.txt文件如下:

1 2 3
4 5 6
7 8 9

要跳過第一行:

a = np.loadtxt("sample.txt", skiprows=1)
a



array([[4., 5., 6.],
       [7., 8., 9.]])

隻讀取某些列

假設我們的sample.txt文件如下:

1 2 3
4 5 6

僅讀取第一列和第三列(即列索引 0 和 2):

a = np.loadtxt("sample.txt", usecols=[0,2])
a



array([[1., 3.],
       [4., 6.]])

拆裝色譜柱

假設我們的sample.txt文件如下:

1 2
3 4

要檢索每列的數據而不是單個 NumPy 數組:

col_one, col_two = np.loadtxt("sample.txt", unpack=True)
print("col_one:", col_one)
print("col_two:", col_two)



col_one: [1. 2.]
col_two: [3. 4.]

指定所需尺寸

假設我們的 sample.txt 隻有一行:

1 2 3 4

默認情況下,loadtxt(~) 將生成一個一維數組:

a = np.loadtxt("sample.txt")
a



array([1., 2., 3., 4.])

我們可以通過以下方式指定我們希望數組是二維的:

a = np.loadtxt("sample.txt", ndmin=2)
a



array([[1., 2., 3., 4.]])

指定要讀取的最大行數

假設我們的sample.txt文件如下:

1 2
3 4
5 6

僅讀取前兩行:

a = np.loadtxt("sample.txt", max_rows=2)
a

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | loadtxt method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。