2021-03-27 python数据处理系统学习(九)Numpy的文件读写、字符串操作

2021-03-27 python数据处理系统学习(九)Numpy的文件读写、字符串操作

1、读取数据

1.1 genfromtxt

import numpy as np
data=np.genfromtxt(r'C:\Users\wangyu\Desktop\毕业论文\python练习.txt',delimiter=',',encoding='utf-8')

通过type可以发现这是array

type(data)
Out[11]: numpy.ndarray

添加了一些细节后:

import numpy as np
data=np.genfromtxt(r'C:\Users\wangyu\Desktop\毕业论文\python练习.txt',delimiter=',',encoding='utf-8-sig',names=True,dtype=None)#跳过表头
type(data)
Out[23]: numpy.ndarray

data
Out[24]: 
array([(  2, 100, 0.96070258,  1.15771286e+07, 43100, 1.55762304e+08, 5.90841713e+08, 7.46604016e+08, 3623, 1567, False),
       (  3,  60, 0.97977928,  1.39459093e+07, 28055, 5.20269787e+07, 5.70177995e+08, 6.22204974e+08,  570,  135, False),
       (  4,  60, 0.91860882,  4.28482561e+07,  2562, 2.19877104e+08, 1.83996969e+09, 2.05984679e+09,  131,   26, False),
       (  5,  80, 0.95664292, -6.86102503e+05,  3089, 1.97784985e+08, 2.02632289e+08, 4.00417274e+08,  390,   33, False),

txt文件中的数据用什么间隔,则delimiter里写什么

1.2 loadtxt

data=np.loadtxt(r'C:\Users\wangyu\Desktop\毕业论文\python练习.txt',delimiter=',',encoding='utf-8-sig',dtype=str)

读取结果如图:
在这里插入图片描述

2、存储数据

savetxt

np.savetxt(r'C:\Users\wangyu\Desktop\毕业论文\python练习.csv',data,delimiter=',')#data为要保存的数据

3、字符串操作

3.1 输入数组/字符串

str_list=['hello world']
[i.upper() for i in str_list]#遍历str_list
Out[1]: ['HELLO WORLD']
import numpy as np
str_arr=np.char.upper(str_list)
str_arr
Out[3]: array(['HELLO WORLD'], dtype='<U11')

这说明原本既可以是数组形式也可以是字符串形式,但是经过np操作后就变成了数组形式

3.2 add函数操作

np.char.add(['hello','world'],['hello','China'])
Out[4]: array(['hellohello', 'worldChina'], dtype='<U10')

3.3 multiply函数操作

np.char.multiply(['hello','world'],3)
Out[5]: array(['hellohellohello', 'worldworldworld'], dtype='<U15')

用列表式也没有问题,就是处理起来比较麻烦,如下:

a=['hello','world']
[i*3 for i in a]
Out[6]: ['hellohellohello', 'worldworldworld']

3.4 join函数字符串连接

本质是进行分割合并

np.char.join([':','-'],['hello','world'])
Out[7]: array(['h:e:l:l:o', 'w-o-r-l-d'], dtype='<U9')

3.5 replace替换函数

b=['初步了解python','初步了解java']
c=np.char.replace(b,'初步了解','深入了解')

c
Out[9]: array(['深入了解python', '深入了解java'], dtype='<U10')

列表推导式替换方式如下:

[i.replace('初步了解','深入了解') for i in b]
Out[10]: ['深入了解python', '深入了解java']

3.6 strip去除指定字符串函数

a=['-hello-','-world-']
np.char.strip(a,'-')
Out[11]: array(['hello', 'world'], dtype='<U7')

strip只能去除头和尾

3.7 实操

f=open(r'C:\Users\wangyu\Desktop\毕业论文\python练习.txt',encoding='utf-8').readlines()

S=f[3]

arr=S.strip(',')#由于原本的数据由都好分隔开,所以这里填逗号

arr
Out[16]: '4,60,0.91860882,42848256.09,2562,219877104.4,1839969690,2059846794,131,26,\n'

下一步去除空格:

arr=np.char.rstrip(arr,'\n')

arr
Out[18]: 
array('4,60,0.91860882,42848256.09,2562,219877104.4,1839969690,2059846794,131,26,',
      dtype='<U75')

如果得到的列里有奇怪的符号,可以用replace替换,但是这里没有所以不进行操作。
接下来查找列表里是否有某些元素:

np.char.find(arr,'100')
Out[19]: array(-1)

返回-1表示没有查找到。

np.char.find(arr,'60')
Out[20]: array(2)

返回2表示在第二个位置查找到。

3.8 islower判断是否有小写字母

由于这里都是str,所以没有

np.char.islower(arr)
Out[21]: array(False)

3.9 isdigit判断是否有数字

由于这里都是str,所以没有

np.char.isdigit(arr)
Out[22]: array(False)

3.10判断一个数出现几次

np.char.count(arr,'60')

3.11 判断是否以指定符号开头/结尾

np.char.startswith(arr,'60')
np.char.endswith(arr,'60')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值