NumPy 的 loadtxt(~)
方法讀取文本文件,並將其內容解析為 NumPy 數組。
參數
1. fname
| string
文件的名稱。如果該文件與腳本不在同一目錄中,請確保也包含該文件的路徑。
2. dtype
| string
或 type
| optional
所構造數組所需的數據類型。默認情況下,dtype=float
。
3. comments
| string
或list
或strings
| optional
如果您的輸入文件包含注釋,那麽您可以指定標識注釋的內容。默認情況下, comments="#"
,即同一行中 # 後麵的字符將被視為注釋。如果您的文本文件不包含任何注釋,您可以設置None
。
4. delimiter
| string
| optional
用於分隔數據的字符串。默認情況下,分隔符是空格。
5. converters
| dict<int,function>
| optional
您可以應用映射來轉換列值。鍵是列的整數索引,值是所需的映射。檢查下麵的示例以進行說明。默認情況下,dict=None
。
6. skiprows
| int
| optional
開頭要跳過的行數。請注意,這包括評論。默認情況下,skiprows=0
。
7. usecols
| int
或 sequence
| optional
您要讀取的列的整數索引。默認情況下, usecols=None
,即讀取所有列。
8. unpack
| boolean
| optional
您可以通過設置 unpack=True 來單獨檢索列數組,而不是使用一個巨大的 Numpy 數組。例如,col_one, col_two = np.loadtxt(~, unpack=True)
。默認情況下,unpack=False
。
9. ndmin
| int
| optional
您想要的最小維度數。允許的值為 0
、 1
和 2
。
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
相關用法
- Python NumPy load方法用法及代碼示例
- Python locals()用法及代碼示例
- Python Django logout用法及代碼示例
- Python NumPy logaddexp2方法用法及代碼示例
- Python PIL logical_and() and logical_or()用法及代碼示例
- Python NumPy log方法用法及代碼示例
- Python NumPy logspace方法用法及代碼示例
- Python Django login用法及代碼示例
- Python NumPy logical_or方法用法及代碼示例
- Python NumPy log2方法用法及代碼示例
- Python logging.handlers.SocketHandler.makePickle用法及代碼示例
- Python PIL logical_xor() and invert()用法及代碼示例
- Python logging.Logger.debug用法及代碼示例
- Python logging.debug用法及代碼示例
- Python NumPy log1p方法用法及代碼示例
- Python log10()用法及代碼示例
- Python NumPy logical_and方法用法及代碼示例
- Python logging.LogRecord用法及代碼示例
- Python NumPy logaddexp方法用法及代碼示例
- Python Django login_required用法及代碼示例
- Python NumPy logical_not方法用法及代碼示例
- Python NumPy log10方法用法及代碼示例
- Python NumPy logical_xor方法用法及代碼示例
- Python list remove()用法及代碼示例
- Python len方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | loadtxt method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。