numpy.loadtxt()用法

Posted celine227

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy.loadtxt()用法相关的知识,希望对你有一定的参考价值。

1.np.loadtxt 用法 读取txt文件

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

参数的作用如下:

1. fname

import numpy as np
# 首先给出最简单的loadtxt的代码,实际上就是直接写文件名, 其他关键字参数都是默认的.
a = np.loadtxt(out.txt)
print(a)  # a为浮点数的原因为Python默认的数字的数据类型为双精度浮点数

结果:

[[伤感自拍 半身风雨半身伤 半句别恨半心凉]
 [官宣表白 我是檐上三寸雪 你是人间惊鸿客]
 [秀闺蜜照 含娇含笑 宿翠残红窈窕]
 [睡前自拍 南风知我意 吹梦到西州]
 [情侣离别 南风未起 念你成疾]]

2. skiprows

# 设置skiprows=2, 就会跳过前两行,数据类型设置为字符串.
a = np.loadtxt(out.txt,dtype=str,skiprows=2)
print(a)

结果:

[[秀闺蜜照 含娇含笑 宿翠残红窈窕]
 [睡前自拍 南风知我意 吹梦到西州]
 [情侣离别 南风未起 念你成疾]]

3.comment

# 这里的comment的是指, 如果行的开头为*就会跳过该行(这里将睡前自拍前面加*)
a = np.loadtxt(out.txt,dtype=str,skiprows=1,comments=*)
print(a)

结果:

[[官宣表白 我是檐上三寸雪 你是人间惊鸿客]
 [秀闺蜜照 含娇含笑 宿翠残红窈窕]
 [情侣离别 南风未起 念你成疾]]

4.delimiter

import numpy as np
#参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等
a = np.loadtxt(out.txt,dtype=str,delimiter= )
print(a)

结果:

[[伤感自拍 半身风雨半身伤 半句别恨半心凉]
 [官宣表白 我是檐上三寸雪 你是人间惊鸿客]
 [秀闺蜜照 含娇含笑 宿翠残红窈窕]
 [睡前自拍 南风知我意 吹梦到西州]
 [情侣离别 南风未起 念你成疾]]

5.usecols

import numpy as np
#usecols是指只使用0,2两列
a = np.loadtxt(out.txt,dtype=str,delimiter= ,usecols=(0,2))
print(a)

结果:

[[伤感自拍 半句别恨半心凉]
 [官宣表白 你是人间惊鸿客]
 [秀闺蜜照 宿翠残红窈窕]
 [睡前自拍 吹梦到西州]
 [情侣离别 念你成疾]]

6. unpack

import numpy as np
# unpack是指会把每一列当成一个向量输出, 而不是合并在一起
a = np.loadtxt(out.txt,dtype=str,delimiter= ,unpack=True)
print(a)
b,c = np.loadtxt(out.txt,dtype=str,delimiter= ,usecols=(0,1),unpack=True)
print(b,c)

结果:

[[伤感自拍 官宣表白 秀闺蜜照 睡前自拍 情侣离别]
 [半身风雨半身伤 我是檐上三寸雪 含娇含笑 南风知我意 南风未起]
 [半句别恨半心凉 你是人间惊鸿客 宿翠残红窈窕 吹梦到西州 念你成疾]]
[伤感自拍 官宣表白 秀闺蜜照 睡前自拍 情侣离别] [半身风雨半身伤 我是檐上三寸雪 含娇含笑 南风知我意 南风未起

7.converters

import numpy as np
# 介绍converters参数, 这个是对数据进行预处理的参数
#我们可以先定义一个函数, 这里的converters是一个字典, 表示第1列使用函数func来进行预处理
def func(x):
    return int(x)+1

a = np.loadtxt(out1.txt,dtype=int,delimiter= ,converters={1:func})
print(a)

结果:

[[ 1  3  3  4  5  6  7  8]
 [ 9 11 11 12 13 14 15 16]
 [17 19 19 20 21 22 23 24]
 [25 27 27 28 29 30 31 32]]

技术图片

 

2.np.savetxt保存文本

技术图片

 

3.np.loadtxt()读取csv文件

import numpy as np
a=np.arange(100).reshape(10,10)
np.savetxt(out2.csv,a,fmt=%d)
data=np.loadtxt(out2.csv,dtype=int,usecols=(1,2))
print(data)
print(data.shape)

结果:

[[ 1  2]
 [11 12]
 [21 22]
 [31 32]
 [41 42]
 [51 52]
 [61 62]
 [71 72]
 [81 82]
 [91 92]]
(10, 2)

unpack的使用:

import numpy as np
a=np.arange(100).reshape(10,10)
np.savetxt(out2.csv,a,fmt=%d)
data1,data2=np.loadtxt(out2.csv,dtype=int,usecols=(1,2),unpack=True)
print(data1)
print(**50)
print(data1.tolist())

结果:

[ 1 11 21 31 41 51 61 71 81 91]
**************************************************
[1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

tolist是将数组转化为列表(列表是用逗号隔开的)

 

以上是关于numpy.loadtxt()用法的主要内容,如果未能解决你的问题,请参考以下文章

将 numpy.searchsorted 方法应用于使用 numpy.loadtxt 从文本文件加载的数组

numpy loadtxt 跳过第一行

带有 NumPy loadtxt() 和 genfromtxt 的“dtype”都有哪些可用数据类型?

使用numpy.loadtxt()总是报错ValueError: could not convert string to float: 213

Numpy中数据的常用的保存与读取

怎么去掉小数点