python读取txt到数组中_python读入txt数据,并转成矩阵

txt文件的部分数据截图如下图。数据链接:https://pan.baidu.com/s/1_Ce6WLGDTWf7qQIvpP-70Q 提取码:n22a

20191201003119082426.png

python读入该数据,并转成array,代码如下:

import os

import numpy as np

# 数据文件转矩阵

# path: 数据文件路径

# delimiter: 行内字段分隔符

def file2array(path, delimiter):

recordlist = []

fp = open(path, ‘r‘, encoding=‘utf-8‘)

content = fp.read() # content现在是一行字符串,该字符串包含文件所有内容

fp.close()

rowlist = content.splitlines() # 按行转换为一维表,splitlines默认参数是‘\n’

# 逐行遍历

# 结果按分隔符分割为行向量

recordlist = [row.split(delimiter) for row in rowlist if row.strip()]

return np.array(recordlist)

root = ‘testdata‘

filelist = os.listdir(root) # 获取路径下所有数据文件的文件名

for file in filelist[:-1]:

recordArray = file2array(root + ‘/‘ + file, ‘\t‘) # 文件到矩阵的转换

print(‘shape of recordmat: ‘, np.shape(recordArray))

结果如下:

20191201003119207430.png

原文地址:https://www.cnblogs.com/picassooo/p/11964411.html

### 使用Python数据读取数组 为了实现这一目标,可以采用多种方法来处理不同类型的文件并将其转换适合操作的数据结构。以下是几种常见的方式: #### 方法一:使用Pandas库读取CSV文件 对于像CSV这样的表格型文件,`pandas`是一个非常强大的工具。通过它可以直接创建DataFrame对象,而这个对象本质上就是一个二维标签化的数组。 ```python import pandas as pd # 加载训练集和测试集,并合并它们形完整的Titanic乘客表 mytrain0 = pd.read_csv("https://mathstat.dal.ca/~fullsack/DATA/titanictrain.csv") mytest0 = pd.read_csv("https://mathstat.dal.ca/~fullsack/DATA/titanictest.csv") # 合并两个数据框 mytitanic = pd.concat([mytest0, mytrain0], ignore_index=True) # 获取记录总数 nrec = len(mytitanic) print(f'Total number of records: {nrec}') ``` 这段代码展示了如何加载外部CSV资源并将这些资源整合在一起[^4]。 #### 方法二:利用NumPy直接构建多维数组 如果源数据已经是纯数值形式,则可以选择更底层但也更加高效的`numpy`来进快速初始化。 ```python import numpy as np # 创建一个简单的三维随机数矩阵作为例子 data_matrix = np.random.rand(100, 5, 3) # (样本数量, 特征维度, 时间步长或其他第三轴含义) # 查看形状以确认大小 shape_info = data_matrix.shape print(shape_info) ``` 这里说明了怎样定义一个多维数组以及查询其尺寸信息[^3]。 #### 方法三:从Excel文档导入数据至内存中的表或字典 当面对较大的Excel工作簿时,可能需要考虑分块读入策略来优化性能表现;同时也可以根据实际需求调整参数设置以便更好地适应特定应用场景下的要求。 ```python import pandas as pd chunk_size = 10 ** 6 # 定义每次读取的最大数 chunks = [] for chunk in pd.read_excel('large_file.xlsx', sheet_name='Sheet1', chunksize=chunk_size): chunks.append(chunk) df_from_chunks = pd.concat(chunks, axis=0) array_data = df_from_chunks.values.tolist() ``` 上述片段解释了一种有效应对大规模电子表格的技术方案[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值