numpy的常见使用

一、数据读取和存储

import numpy as np

# numpy数据读取和存储
# 读取txt、csv文件
# np.genfromtxt(r'文件路径',delimiter=',')
# np.loadtxt(r'文件路径',delimiter=',')

# 存储文件,按逗号分割,保留3位小数
# np.savetxt(r'存储路径',data,delimiter=',',fmt='%3f')
numpy.loadtxt参数配置
参数 解释
frame 文件路径
dtype 以什么类型读取文件中的数据,默认np.float
delimiter 以什么符号作为分隔符读取数据,默认为空格
skiprows 跳过前几行不读取
usecols 读取指定的列,索引,参数为元组类型
unpack 值为True的时候会进行转置

二、字符串操作

'''
numpy字符串操作
'''

# 使用python内置函数来实现全大写
str_list=['Hello','World','我爱中国我爱中国我爱中国','birthday123']
# li=[i.upper() for i in str_list]
# print(li)

#将字符串转成大写,输出结果为数组类型
str_arr=np.char.upper(str_list)
# 将对应位置的字符串拼接出来
str_arr=np.char.add(['中国','国庆'],['空军','大阅兵'])
# 将字符串打印3遍
str_arr=np.char.multiply(['中国','万岁'],3)
# 将字符串以某种格式分割后再拼接回来
str_arr=np.char.join([':','-'],['hello','world'])
# 替换目标字符
a=['好好学习','天天向上']
str_arr=np.char.replace(a,'天天向上','周末偷懒')
# 去除左右两边特定字符
str_arr=np.char.strip(['-特斯拉','-兰博-基尼','法拉利-'],'-')
# 判断字符串是否全为小写
str_arr=np.char.islower(str_list)
# 判断是否存在数值类型数据
str_arr=np.char.isdigit(str_list)
# 判断元素中是否只有字母或汉字
str_arr=np.char.isalpha(str_list)
# 判断元素中包含目标元素的次数
str_arr=np.char.count(str_list,'中国')
# 判断元素中是否以目标元素开始
str_arr=np.char.startswith(str_list,'H')
# 判断元素中是否以目标元素结尾
str_arr=np.char.endswith(str_list,'H')
# 对目标元素进行编码
str_arr=np.char.encode(str_list)
# 对目标元素进行解码
str_arr=np.char.decode(str_arr)
# 将首字母大写后返回
str_arr=np.char.title(str_list)
str_arr=np.char.capitalize(str_list)
# 对字符串进行左右填充目标元素,返回指定长度的数组
str_arr=np.char.center(str_list,15,'H')
print(str_arr)

三、随机数生成

import numpy as np
# 生成一个3行4列的随机数组,范围在[0,1)
a=np.random.random((3,4))

# 随机数种子,定义了随机数种子之后,随机数的产生就不会再发生变化
# np.random.seed(100)
# 产生均匀分布的随机数[0,1)
a=np.random.rand(5,5)*10
# 产生从[0,100)之间的随机整数,共5行5列
a=np.random.randint(0,100,size=(5,5))

# 控制随机数产生的小数位数
np.set_printoptions(precision=2)
# 产生给定范围的随机数,均匀分布:[0,10)
a=np.random.uniform(low=0,high=10,size=10)

# 产生一个均值为1标准差为3的正态分布序列
a=np.random.normal(1,3,size=100)
# 产生一个标准正太分布的随机数,均值为0,标准差为1
a=np.random.randn(5,4)

s=np.array([1,2,5,3,4,6])
# 对数组做随机排序,直接作用于数组
np.random.shuffle(s)
# 对数组做随机排序,返回的是视图
# print(np.random.permutation(s))

print(a)

四、统计相关函数

import numpy as np
data= np.genfromtxt('arr.txt',delimiter=',')
print(data)
# 对数组中所有元素求和
print(data.sum())
# 纵向对数组求和
print(data.sum(axis=0))
# 横向对数组求和
print(data.sum(axis=1))

# 对数组进行累计求和
print(data.cumsum())
# 对数组进行纵向累计求和
print(data.cumsum(axis=0))
# 对数组进行横向累计求和
print(data.cumsum(axis=1))

# 对数组进行累计乘积
print(data.cumprod())
# 对数组纵向累计乘积
print(data.cumprod(axis=0))
# 对数字横向累计乘积
print(data.cumprod(axis=1))

# 求出数组的最大值
print(data.max())
# 纵向求数组的最大值
print(data.max(axis=0))
# 横向求数组的最大值
print(data.max(axis=1))

# 计算分位数
print(np.percentile(data,10))
print(np.percentile(data,[10,20,30]))

# 计算中位数
print(np.median(data))

# 计算极差,最大值减最小值
print(data.ptp())
# 计算小于20的数组元素个数之和
print(np.sum(data<20))

五、线性代数相关

import numpy as np
a=np.array([1,2,3,4])
b=np.array([4,5,6,7])
# 求数组点乘
result=np.dot(a,b)
# 求矩阵点乘
result=np.dot(a.reshape(2,2),b.reshape(2,2))

# 矩阵转置
result=np.transpose(a.reshape(2,2))
# 计算逆矩阵
# result=np.linalg([[-1,2],[3,-4]])

# 求对角线元素
reult=np.diag(a.reshape(2,2))

print(result)

 

你可能感兴趣的:(Python,python,numpy)