numpy对txt、csv、xlsx、npy、npz文件操作

numpy对txt、csv、xlsx、npy、npz文件操作

arr = np.arange(10)
np.save('some_array', arr)  # 保存数组到文件中

np.load('some_array.npy')   # 加载数组文件

np.savez('array_archive.npz', a=arr, b=arr)  # 保存多个数组到文件中

np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)   # 保存并压缩多个文件
1. 从.txt文件读取
  1. 建立test.txt文档:

1,1,2,4,3,9,4,16,5,25

以下是一些步骤:

  1. 将文本文件读入txt变量:
txt = np.loadtxt('test.txt', delimiter = ',')
txt

这是前面代码块的说明:

  • test.txt文本文件有 10 个数字,用逗号隔开,代表二​​维空间中的 xy 五个点的坐标(1, 1)(2, 4)(3, 9)(4, 16)(5, 25)
  • 函数loadtxt()和将文本数据加载到 NumPy 数组中。

您应该获得以下输出:

array([ 1., 1., 2., 4., 3., 9., 4., 16., 5., 25.])
  1. 将平面数组转换为 2D 空间中的五个点:
txt = txt.reshape(5,2)
txt

执行前面的代码后,您应该看到以下输出:

array([[ 1., 1.], [ 2., 4.], [ 3., 9.], [ 4., 16.], [ 5., 25.]])
  1. .txt变量拆分为xy轴坐标:
x = txt[:,0]
y = txt[:,1]
print(x, y)

这是前面代码块的解释:

  • xy轴点与txt变量分开。
  • xtxt中的第一列,y是第二列。
  • Python 索引从 0 开始。

执行上述代码后,您应该看到以下输出:

[ 1\. 2\. 3\. 4\. 5.] [ 1\. 4\. 9\. 16\. 25.]
2. 从.csv文件读取

建立test.csv:
1 1
2 4
3 9
4 16
5 25

.csv文件具有行和列的关系数据库结构,test.csv文件在 2D 空间中具有五个点的 xy 坐标。 每个点是文件中的一行,分为两列:xy。 相同的 NumPy loadtxt()函数用于加载数据:

x, y = np.loadtxt ('test.csv', unpack = True, usecols = (0,1), delimiter = ',')
print(x)
print(y)

执行上述代码后,应该看到以下输出:

[ 1\. 2\. 3\. 4\. 5.] [ 1\. 4\. 9\. 16\. 25.]
3. 从.xlsx文件读取

建立test.xlsx 两列:
1 1
2 4
3 9
4 16
5 25

现在,让我们从.xlsx文件中读取相同的数据,并创建xy NumPy 数组。 NumPy loadtxt()函数不支持.xlsx文件格式。 可以使用 Python 数据处理包pandas

  1. .xlsx文件读入 pandas 数据帧中。 该文件在 2D 空间中具有相同的五个点,每个点在具有xy列的单独行中:
# 'test.xlsx' 文件位置,有\的需要用\\表示, 'sheet'是子表名称, header=1将第2行设置为列索引
df = pd.read_excel('test.xlsx', 'sheet', header=1) 
  1. 将 pandas 数据帧转换为 NumPy 数组:
data_array = np.array(df)
print(data_array)

您应该看到以下输出:

[[ 1 1] [ 2 4] [ 3 9] [ 4 16] [ 5 25]]
  1. 现在从 NumPy 数组中提取xy坐标:
x , y = data_array[:,0], data_array[:,1]
print(x,y)

您应该看到以下输出:

[1 2 3 4 5] [ 1 4 9 16 25]
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值