python基础(6)--numpy

numpy基础数据类型ndarray

多维数组的定义及属性

import numpy as np
ar=np.array([1,2,3,4])	:a=[1 2 3 4]与列表的区别是没有,
ar.ndim      维度也称rank"秩",可从左往右数[的个数,1[则为第一轴
ar.shape     类型如(1,4)也为(4,)
ar.size      元素的总个数
ar.dtype     元素的类型
ar.itemsize  每个元素的字节大小
ar.data      实际元素在缓冲器的位置,不常用

创建数组

np.arange(10)     #0-9整型
np.arange(5,12)   #5-11
np.arange(2,10,2) #步长为2
np.linspace(2.0,10.0,num=5,retstep=True,endpoint=False)	#num默认50,endpoint默认
														#True,retstep返回实际步长
np.zeros((1,2),dtype=np.int)		#默认为np.float64
np.zeros_like(ar1)				
np.ones()
np.eye(5)							#5*5的单位对角矩阵,对角为1,其余为0

#numpy基本索引及切片

基本索引

ar=np.arange(16)
ar.reshape(4,4)
ar[2]  :[8,9,10,11]
ar[][]
ar[1:3]	:第二行和第三行
ar[1:3,2:4]:第二行和第三行中的第3列和第4列

i=np.array([True,False,True])
ar[i,:]   #支持bool索引
即可利用它筛选某一些值:
ar1=ar[ar>3]

m=ar>5   :可得到一个对应bool类型的数组

复制

ar.copy()

np.random

np.random.random

np.random.random([3.4])    #生成[3,4]浮点数,浮点数都是从0-1中随机。

np.random.normal

np.random.normal(loc=0,scale=1.0,size=(2,2))  #均值为0方差为1

np.random.rand

np.random.rand(2,2)  #[0,1)均匀分布
np.random.randn(2,2) == np.random.normal(size=(2,2))#不能更改均值和标准差,正态分布

np.random.randint

np.random.randit(low,high=None,size=None,dtype="l")#生成[low,high),[0,low)整数

随机种子

rng=np.random.RandomState(10)
rng.randn()			#不变

numpy通用函数

形状修改

ar=np.ones((2,3,4))
ar.T  :(4,3,2)  #转置
np.reshape(ar,( , ))	/  ar.reshape( , )		#生成新数组
np.resize(ar,(,))    / ar.resize()				#后一种更改原数组,更改前后元素个数可不一样,按原元素循环排列

类型转换

ar2=ar1.astype(np.int32)

堆叠

a.shape=(2,1)
b.shape=(2,1)
ar1.stack((a,b))		:增加在axis上的维度 .shape=(2,2,1)
ar1.stack((a,b),axis=1) :.shape=(2,2,1)

数组拆分

ar1=np.hsplit(ar,2)		:横向平均拆分,即第一维度会改变
ar1=np.vsplit(ar,2)		:纵向平均拆分,即第二维度会改变

运算

ar = np.arange(6).reshape(2,3)
ar + 10   # 加法
ar * 2)   # 乘法
1 / (ar+1)  # 除法
ar ** 0.5  # 幂
# 与标量的运算

ar.mean()  # 求平均值
ar.max()  # 求最大值
ar.min()  # 求最小值
ar.std() # 求标准差
ar.var() # 求方差
ar.sum(), np.sum(ar,axis = 0))  # 求和,np.sum() → axis为0,按列求和,即改变axis=0的值;axis为1,按行求和,即改变axis=1的值
np.sort(np.array([1,4,3,2,5,6]))  # 排序
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值