numpy

  • ndarray自带属性
import numpy as np
a=np.array([[0,1,2,3,4],
          [9,8,7,6,5]])
a.ndim
a.shape
a.size #ndarray对象元素的个数,相当于.shape中n*m的值
a.dtype
a.itemsize #ndarray对象中每个元素的大小,以字节为单位
  • ndarray的元素类型
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • ndarray创建方法
#ndarray数组的创建方法
#1.从python中的列表元组创建
x=np.array([0,1,2,3])
print(x)
x=np.array((4,5,6,7))
print(x)
x=np.array([[1,2],[3,4],(5,6)])
print(x)

#2.使用numpy中的函数创建数组
#(1)
y=np.arange(6)
print(y)
y=np.ones((2,2),dtype=np.int32)
print(y)
y=np.eye(5)
print(y)
#(2)
#np.ones_like(a)
#np.zeros_like(a)
#np.full_like(a,val)
#(3)
a=np.linspace(1,10,4) #根据起止数据等间距地填充数据,形成数组
print(a)
b=np.linspace(1,10,4,endpoint=False)
print(b)
c=np.concatenate((a,b))
print(c)
  • ndarray维度变化
#ndarray数组维度变化
#.reshape(shape) 返回新数组,元素组不变
#.resizw(shape) 与reshape功能相同,但是改变原数组
#.swapaxes(ax1,ax2) 将数组n个维度中的两个维度进行调换
#.flatten() 对数组进行降维,元素组不变
#.tolist() 转置?

#ndarray数组类型变化
#new_a=a.astype(new_type)
a=np.ones((2,3),dtype=np.int)
print(a)
b=a.astype(np.float)
print(b)
print(a)
  • 切片和索引
#数组的索引和切片
#(1)一维
a=np.array([0,1,2,3,4])
#索引a[2]
#切片
print(a[0:4:2]) #起始,终止(不含),步长
#(2)多维
b=np.arange(24).reshape((2,3,4))
print(b)
#索引b[1,2,3]
#切片
print(b[:,:,::2])#一二维度不变,三维度起始到终止步长为2
  • 数组运算和统计
#数组运算
a=np.arange(24).reshape((2,3,4))
#print(a.mean())
a=a/a.mean()
print(a)
#元素级运算
#绝对值:np.abs(x)
#平方根:np.sqrt(x)
#平方:np.suqare(x)
#原数组不变

#统计
sum(a, axis=None) 根据给定轴axis计算数组a相关元素之和,axis整数或元组
mean(a, axis=None) 根据给定轴axis计算数组a相关元素的期望,axis整数或元组
average(a,axis=None,weights=None) 根据给定轴axis计算数组a相关元素的加权平均值
std(a, axis=None) 根据给定轴axis计算数组a相关元素的标准差
var(a, axis=None) 根据给定轴axis计算数组a相关元素的方差

min(a) max(a) 计算数组a中元素的最小值、最大值
argmin(a) argmax(a) 计算数组a中元素最小值、最大值的降一维后下标
unravel_index(index, shape) 根据shape将一维下标index转换成多维下标
ptp(a) 计算数组a中元素最大值与最小值的差
median(a)计算数组中元素的中位数(中值)

median(a)
  • 随机函数
#随机函数
#1.np.random
#(1)
#rand(do...dn) 生成n维随机数,{0,1)均匀分布
#randn()正态分布
#randint(low,high(shape))
#seed(s)随机种子
np.random.seed(10)
a=np.random.randint(10,20,(2,2))
print(a)
np.random.seed(10)
b=np.random.randint(10,20,(2,2))
print(b)
#(2)
#shuffle(a)根据第一维随机排列,改变a
#permutation(a)不改变a
#(3)
#uniform(low,high,shape)均匀分布 
#normal(loc,scale,shape)正态分布 loc均值 scale标准差
  • 存储和加载
#数据的存储
#1.csv文件
#(1)存储
#np.savetxt(frame,array,fmt='%.18e',delimiter=None)
#frame:输出文件 array:保存的array fmt:保存的格式  delimiter:分隔符,默认是空格
#存储在当前路径下
a=np.arange(100).reshape((10,10))
np.savetxt('test.csv',a,fmt='%d',delimiter=',')
#(2)加载
#np.loadtxt(framw,dtype=np.float,delimiter=None,unpack=False)
#注意:csv只能有效存储一维或者二维数组
#2.多维数组存储
a=np.arrange(100).reshape(5,10,2)
a.tofile("b.dat",sep=',',format='%d')
c=np.fromfile("b.dat",dtype=np.int,sep=',').reshape(5,10,2)
#注意:该方法读取数据时需要知道存入数据时的维度信息,需要配合使用
#3.numpy的便捷文件存取
np.save(fname,array)
#fname:必须是以.npy为扩展名
np.load(fname)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值