详解Python中numpy.loadtxt()读取txt文件

本文详细介绍了如何使用numpy的loadtxt()函数读取txt文件,包括基本用法、跳过指定行、处理注释行、选择列及数据预处理等功能,并通过实例进行了演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件。

读取txt文件我们通常使用 numpy 中的 loadtxt()函数

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

注:loadtxt的功能是读入数据文件,这里的数据文件要求每一行数据的格式相同。

也就是说对于下面这样的数据是不符合条件的:

123

1 2 4 3 5

接下来举例讲解函数的功能:

1、简单的读取

test.txt

test.txt

1 2 3 4 
2 3 4 5
3 4 5 6
4 5 6 7

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.]]
数组中的数都为浮点数,原因为Python默认的数字的数据类型为双精度浮点数 

2、skiprows=n:指跳过前n行

test.txt

A B C D
2 3 4 5
3 4 5 6
4 5 6 7

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

输出:

[[2 3 4 5]
 [3 4 5 6]
 [4 5 6 7]]

3、comment=‘#’:如果行的开头为#就会跳过该行

test.txt

A B C D
2 3 4 5
3 4 5 6
#A B C D
4 5 6 7

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

输出:

[[2 3 4 5]
 [3 4 5 6]
 [4 5 6 7]]

4、usecols=[0,2]:是指只使用0,2两列,参数类型为list

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

输出: 

[[2 3 4]
 [4 5 6]]

unpack是指会把每一列当成一个向量输出, 而不是合并在一起。 如果unpack为false或者参数的话输出结果如下:

[[2 4]
 [3 5]
 [4 6]]

test.txt

A, B, C, D
2, 3, 4, 5
3, 4, 5, 6
#A B C D
4, 5, 6, 7

5、delimiter:数据之间的分隔符。如使用逗号","。

6、converters:对数据进行预处理

def add_one(x):
    return int(x)+1    #注意到这里使用的字符的数据结构
a = np.loadtxt('test.txt', dtype=int, skiprows=1, converters={0:add_one}, comments='#', delimiter=',', usecols=(0, 2), unpack=True)
print a

def add_one(x):
    return int(x)+1    #注意到这里使用的字符的数据结构
a = np.loadtxt('test.txt', dtype=int, skiprows=1, converters={0:add_one}, comments='#', delimiter=',', usecols=(0, 2), unpack=True)
print a

 

Python中,可以使用numpy库的loadtxt函数来读取文件loadtxt函数可以读取普通文本文件和csv文件,并且可以根据需要设置分隔符。使用loadtxt函数的语法如下: ```python import numpy as np # 读取普通文本文件 data = np.loadtxt('filename.txt', delimiter=',') # 读取csv文件 data = np.loadtxt('filename.csv', delimiter=',') ``` 在以上代码中,'filename.txt'和'filename.csv'分别表示要读取文件名。如果是csv文件,则需要使用delimiter参数来指定分隔符,通常是逗号(','), 如果是普通文本文件,可以不设置分隔符,loadtxt函数会自动识别。读取的数据将存储在一个numpy数组中,并可以进一步进行处理和分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python使用numpy读取data文件](https://blog.csdn.net/weixin_48419914/article/details/124959775)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [利用Numpy读取和操作文件详解](https://blog.csdn.net/qq_46044325/article/details/126550760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值