文章目录

  • 前言
  • 一、文件的读取和存储
  • 1.读取
  • 2.存储
  • 二、字符串的操作
  • 1.对普通字符串
  • 2.对读取的文件进行字符串操作
  • 2.一些判断函数
  • 三、Numpy的运用
  • 1.随机函数的生成
  • 总结



前言

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')

读取出来的数据分别是这样的

nwjs调用python python调用numpy_字符串操作


nwjs调用python python调用numpy_字符串操作_02

dtype——转换数据类型,不设置dtype,输出数据类型为nan(空字符)

delimiter=’,’——表示数据由逗号分隔

对于读取的数据我们是不希望有表头的,可以通过skip_header关键字设置为整数,表示跳过文件开头对应的行数

可以使用help()方法来看如何使用

nwjs调用python python调用numpy_python_03

2.存储

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

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

可以看到路惊下就有了jj.csv文件。

nwjs调用python python调用numpy_nwjs调用python_04

二、字符串的操作

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:

nwjs调用python python调用numpy_python_05


用“。”分割后:

nwjs调用python python调用numpy_字符串_06


替换\xa0后:

nwjs调用python python调用numpy_字符串_07


去掉\n后:

nwjs调用python python调用numpy_nwjs调用python_08


某个值在每个元素中出现的情况:

nwjs调用python python调用numpy_nwjs调用python_09

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

nwjs调用python python调用numpy_字符串操作_10


总结

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