python编程数值分析例子_python数据分析-numpy数值分析与计算操作

numpy数值分析与计算操作

话不多说,上代码吧!

1.创建数组

##创建一维数组

nd2=np.array([12,25,25,366,54,85,69])#

print(nd2) #

#创建二维数组

nd=np.array([[12,25,34],[34,43,23],[23,34,34]])#

print(nd)

上述代码即为创建数组的代码,可以创建一维数组,二维数组或者三维数组,看你需要数据的结构而定

注:np.array函数中有一个参数dtype可以对其进行赋值,来决定数据的类型

2.得到数组相应的信息

print(type(nd))

print(nd.shape)

arr3=np.array([[1,2],[1,5,2]])

print(arr3)

print(arr3.shape)#数组维度

print("nd维度:",nd.ndim)

print("nd2维度:",nd2.ndim)

#元素个数

print(nd2.size)

print(nd.size)

#元素类型

print(nd2.dtype)

print(nd.dtype)

上述代码将之前创建的数组信息输出

分别是

数组的结构、维度、元素个数、元素类型

3.重置数组结构

rnd=np.array(np.random.rand(24))

print(rnd)

print(rnd.shape)

rnd.shape=6,4

print(rnd)

上面用到了对数组的shapes重新赋值的方法,就可以对数组的结构重构,重构时要注意结构要对应

4.使用函数创建数组

#使用函数创建数组

print(np.ones(shape=(2,3,6)))

print(np.zeros(shape=(2,3,6)))

print(np.full((2,3,6),5))

print(np.eye(6))

print(np.diag([5,6,47,5,6]))#arange函数

ar=np.arange(60).reshape(6,10)

print(ar)#linspace#等差数列,返回固定范围固定数量的数组

ln=np.linspace(1,20,100).reshape(5,20)

print(ln)#生成随机数

r1=np.random.random(20)#0-1之间随机数

print(rl)

c=np.random.randint(1,50,(8,12))

上述代码分别用到了几个函数

np.ones(shape)创建一个全是 1 的结构为shape的数组

np.zeros(shape)创建一个全是 0 的结构为shape的数组

np.full((2,3,6),5)创建一个结构为2,3,5数值全为5的数组

np.eye(6)创建一个6X6的单位矩阵

np.diag([5,6,47,5,6])创建一个对角矩阵

np.arange(60) 创建等差数组,默认为1,如np.arange(2,80,5)初始值为2终点为80,差为5

其他几个上面有注释,同时也与前面说的类似就不解释了

5.数组索引和数组展平和堆叠

#二维数组索引

r=np.random.randint(1,60,(4,6))

print(r)

print(r[1:2,3:5])#行列操作

print(r[::2,::3])

#变换数组形态

print(r.flatten())#横向展平 #reshape ,重塑数组维度

r2=np.random.randint(1,30,(4,6))

r3=np.hstack((r,r2))#横向堆叠

print(r3)r4=np.vstack((r,r2))#纵向堆叠

print(r4)

上述代码分别对应数组的展平,横向堆叠,纵向堆叠

数组的索引则为(r[1:2,3:5]

1:2针对行,3:5针对列,作用形式和常用的range参数作用形式差不多

重点部分统计分析方法,数值统计

6.排序

排序arr2=np.array([0,5,3,4,6,3,4,85,3,5,3,4,5])

arr2.sort()#无返回值

print(arr2)

arr3=np.array([[45,36,45,32,55,21,54,56],[12,45,3,53,5,863,32,52]])

arr3.sort()

print(arr3)

arr3.sort(axis=0)

print(arr3)

print(arr2.argsort())

通过sort对数组排序无返回值,直接在原数组上修改,所以要注意保护数据

可以通过reverse=True/False传递参数决定是正序排序还是反序排序,True代表正序,False反序,也可能我记错了,你试试就行,哈哈

arr2.argsort()则是放回排序的下标,也可以指定排序的方式

7.去重和重复

#去重

print(np.unique(arr2)) #重复

print(np.tile(arr2,2))

print(np.tile(arr3,2))

#对元素进行重复

print(arr2.repeat(2,axis=0))

print(arr3.repeat(2,axis=0))

np.unique可以对数组去重

np.title可以对整个对象进行重复

ndarray对象则可以通过repeat对元素进行重复,axis=0代表列重复,axis=1代表行重复

重点

8.统计函数

#sum函数

arr_z=np.random.randint(0,8,(6,10))

print(arr_z)

print(arr_z.sum())

print(arr_z.sum(axis=0))#纵向

print(arr_z.sum(axis=1))

#mean均值函数

print(arr_z.mean())#将近多少?

print(arr_z.mean(axis=0))#纵向

print(arr_z.mean(axis=1))

#标准差

print(arr_z.std())#将近多少?

print(arr_z.std(axis=0))#纵向

print(arr_z.std(axis=1))

#方差

print(arr_z.var())#将近多少?

print(arr_z.var(axis=0))#纵向

print(arr_z.var(axis=1))

#协方差

print(arr_z.corrcoef())#将近多少?

print(np.corrcoef(arr_z))#纵向

print(np.corrcoef(arr_z,axis=0))

print(np.cov(arr_z))#行为基准

#最大值

print(arr_z.max())#将近多少?

print(arr_z.max(axis=0))#纵向

print(arr_z.max(axis=1))

#最小值

print(arr_z.min())#将近多少?

print(arr_z.min(axis=0))#纵向

print(arr_z.min(axis=1))

#最大值索引

print(arr_z.argmin())#将近多少?

print(arr_z.argmin(axis=0))#纵向

print(arr_z.argmin(axis=1))#

print(arr_z[:,arr_z.argmin(axis=1)])

#累计积

print(arr_z.cumprod())#将近多少?

print(arr_z.cumprod(axis=0))#纵向

print(arr_z.cumprod(axis=1))

#累积和

print(arr_z.cumsum())#将近多少?

print(arr_z.cumsum(axis=0))#纵向

print(arr_z.cumsum(axis=1))

上面用到了很多函数,事实上方法都差不读,当你不对axis传递参数时,函数的作用域时整个数组不论是一维数组还是二维三维数组,

当传递参数为0时,对于二维数组,以列为基础进行操作,为1时,以行为基础操作

9.person系数

np.corrcoef(arr_z)

使用np.corrcoef(a)可计算行与行之间的相关系数,np.corrcoef(a,rowvar=0)用于计算各列之间的相关系数,输出为相关系数矩阵。

10.一个简单绘图,构建自己的随机数据

r1=np.random.random(20)#0-1之间随机数

print(r1)

r1=np.sort(r1)

y1=r1*2+3

y2=r1*2+3+np.random.uniform(-1,1,20) plt.figure(figsize=(8,5))

plt.plot(r1,y1,c='b')

plt.scatter(r1,y2,c='r',s=5)

plt.show()

结构如果所示

通过np.random,我们呢构建随机数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值