Numpy的使用(2)


前言

Python读取数据的功能是非常重要的一个功能,该篇主要学习如何用Python进行文件的读取和保存。
全局首先还是需要先导入Numpy库:import numpy as np


一、文件的读取和存储

1.读取

文件的读取使用的是genfromtxt和loadtxt两个函数

data =  np.genfromtxt(r'D:\data\CCK.txt',delimiter=',',skip_header = 1)

或者

data = np.loadtxt(r'C:\Users\86155\Desktop\bigdata\CCK.txt',delimiter=None,dtype='str')

读取出来的数据分别是这样的
在这里插入图片描述
在这里插入图片描述

dtype——转换数据类型,不设置dtype,输出数据类型为nan(空字符)
delimiter=’,’——表示数据由逗号分隔
对于读取的数据我们是不希望有表头的,可以通过skip_header关键字设置为整数,表示跳过文件开头对应的行数
可以使用help()方法来看如何使用
在这里插入图片描述

2.存储

使用savetxt(路径,data,delimiter,fmt)方法

np.savetxt(r'D:\data\jj.csv',data,delimiter = ',',fmt='%s')

可以看到路惊下就有了jj.csv文件。
在这里插入图片描述

二、字符串的操作

1.对普通字符串

# 字符串操作 char模块
[i.upper() for i in s_list]#遍历全部成大写字母,效率低
s_list = ['hello','world']
s_arr = np.char.upper(s_list)
#字符串连接
np.char.add(['中国','国庆'],['海军','大阅兵'])#想这种形式的二维数组的原理,
np.char.multiply(['中国','万岁'],3)#中国万岁*3
np.char.join([':','-'],['hello','world'])#分割合并

#替换字符串
a = ['我想学习python','好好学习Java']
b = np.char.replace(a,'学习','深入学习')

# 去除字符串符号
a = ['-电动汽车','海洋科技-','-学习python']
np.char.strip(a,'-')

2.对读取的文件进行字符串操作

打开文件代码如下:

f = open(r'D:\data\sanguo.txt',encoding = 'utf-8').readlines()
s = f[4]
arr = s.split('。')#用“。”分割
arr = np.char.replace(arr,'\xa0',' ')#将\xa0替换成空格“ ”
arr = np.char.strip(arr,'\n')#去掉\n
np.char.find(arr,'帝')#“帝”在各元素里出现的位置

s:
在这里插入图片描述
用“。”分割后:
在这里插入图片描述
替换\xa0后:
在这里插入图片描述
去掉\n后:
在这里插入图片描述
某个值在每个元素中出现的情况:
在这里插入图片描述

2.一些判断函数

np.char.islower(arr)#每一位是否都包含小写字母
np.char.isdigit(arr)#每一位是否都包含数字
np.char.isalpha(arr)#每一位是否只包含字母
np.char.count(arr,'来')#包含多少‘来’字
np.char.startswith(arr,'你')#是否以‘你’字开头
np.char.endswith(arr,'近')#是否以‘近’字结尾

三、Numpy的运用

1.随机函数的生成

random()

np.random.random(99)#产生99个0-1之间的浮点数
np.random.random((3,4))#产生3行4列的随机数

每次生成的数的结果都是不同的,如果想控制一下每次生成结果一样,需要seed()函数来固定初值:

np.random.seed(100)#固定了初始化总值
np.random.random((3,4))#每次产生的值都一样了

想要每个数字出现的概率相同,需要使用rand()函数:

np.random.rand(2,10)#产生0-1之间的均匀分布的随机数。

np.random.randint(0,100,size=100)#产生100个(给定了上下范围的)0-100之间的整数,size=([10,10],[10,10])
np.random.uniform(low=0,high=10,size=(20,20))#产生给定范围的随机数
np.random.normal(1,3,size=1000)#正态分布,均值为1,标准差为3 的100个序列
np.mean(np.random.normal(1,3,size=10000))#求均值
np.std(np.random.normal(1,3,size=10000))#标准差
np.random.randn(100)#mean=0,std=1的标准正态分布
s = np.array([1,2,3,5,6,7])
np.random.shuffle(s)#随机排序s

在这里插入图片描述


总结

所有的形式可以通过size来改变生成的是一维的还是二维的,如果生成二维的只需要size=(10,10)即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值