前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python numpy 的基础操作

python numpy 的基础操作

作者头像
小末快跑
发布2019-07-03 17:39:09
1K0
发布2019-07-03 17:39:09
举报
文章被收录于专栏:日常撸知识日常撸知识

创建数组:

import numpy as np

a=np.array([1,23,34])

b=np.array([[1,2,3],[4,5,6]])

c=np.array(((1,2,3),(4,5,6)))

d=np.array([(1,2,3),[5,6,7],[1,3,5]])

e=np.array([['ding','mo'],['xiao','momo']])

创建复数数组:

a=np.array([[1,2,3],[45,67,89],dtype=complex])

创建0数组:

a=np.zeros((3,4))

创建1数组:

a=np.ones((3,3))

用arange()函数生成数组:

a=np.arange(0,10)

b=np.arange(2,10)

c=np.arange(0,12,3)#相邻个数为3

用reshape()函数生成二维数组:

a=np.arange(0,12).reshape(3,4)

用linespace()来生成一定范围内指定个数的数组:

a=np.linespace(0,10,5)

用random()生成随机数组:

a=np.ramdom.ramdom(4)

b=np.ramdom.ramdom((3,4))

数组算术运算,运算都是元素级的:

a=np.array([1,2,3])

b=np.arange(3)

a+5

a*3

a+b

np.sin(a)

a*np.sin(b)

np.sqrt(b)

np.log(b)

A=np.ones((3,4))

B=np.arange(12).reshape(3,4)

A*B#对应元素相乘

对于矩阵的积:

np.dot(A,B)

或者:

A.dot(B)

聚合函数:

a=np.arange(12)

a.sum()

a.min()

a.max()

a.mean()

a.std()

数组的索引、切片,类似列表:

a=np.arange(12)

a[4]#结果为3

a[-2]

a[:4]

a[1:4]

a[[1,3,7]]

a[1:5:2]#索引为[1:5)内每隔两个数取一个值

a[::2]#从索引为0开始到索引最大,每隔两个数取一个值

二维数组切片:

A=np.arange(12).reshape(3,4)

A[1,3]#获取第二行第四列的数据

A[:,0]#获取所有行的索引为0的值,

A[:2,:2]#获取行索引为0,1,以及列索引为0,1组成一新的二维数组

A[[0,3],[0,2]]#抽取的行列索引不连续

数组的迭代:

a=np.arange(12)

for i in a:

print(a)

b=np.arange(12).reshape(3,4)

for i in b:

print(i)#按行输出

for i in b.flat:

print(i)#输出单个值

apply.along_axis()

np.apply.along_axis(np.mean,axis=0,arr=a) #按列求平均值,值为一个列表

np.apply.along_axis(np.max,axis=1,arr=a) #按行求最大值

条件和布尔数组:

A=np.ramdom.ramdom((4,4))

B=A>2#B的值将是一个true和false的布尔数组

C[A>2]#C的值取A中值大于2组成一个一维数组

形状变换:

A=np.arange(12).reshape(3,4)

A.shape=(4,3) #将A变换成4行3列

ravel()将二维数组变换成一位数组:

a=A.ravel()

也可以用shape()直接变换

A.shape(12)

行列转置:

A.transpose()

连接数组:垂直入栈vstack();水平入栈hstack()

A=np.ones((3,4))

B=np.zeros((4,3)).reshape(3,4)

C=np.vstack(A,B) #数组垂直生长

D=np.hstack((A,B)) #数组水平生长

用于一维数组列或行入栈的函数,column_stack(),row_stack(),生成二维数组:

a=np.array(1,2,3)

b=np.array(3,4,5)

c=np.array(4,3,1)

A=np.column_stack(a,b,c)#生成一个3x3的数组,a作为第一列,b作为第二列,c作为第三列

B=np.row_stack(a,b,c)# 按一维数组的行入栈

数组的切分,水平切分hsplit(),意思是按照宽度切分;垂直切分vsplit(),意思是按照高度切分:

A=np.arange(16).reshape(4,4)

[B,C]=np.hsplit(A,2)

[D,E]=np.vsplit(A,2)

split()函数可以将数组分为几个不对成的部分,需要指定索引,axis=0按行切分;axis=1按列切分:

[A1,A2,A3]=np.split(A,[1,3],axis=1)#将数组分为三个部分,第一部分为第一列,第二部分为第二列和第三列,第三部分为第四列。

[A1,A2,A3]=np.split(A,[1,3],axis=0)#按行切分

数组的对象和视图:在numpy中,所有的赋值不会为数组或数组中的元素创建副本

a=np.array([1,2,3])

b=a

b不过是调用a的另一种方式,a[0]=5,b[0]元素的值也会改变;

save()以.npy扩展名保存为二进制数据,load()方法读取保存的数据。

np.save('xiaomomo',a)

load('xiaomomo.npy')

numpy的genfromtext()方法从文本文件中读取数据并将其插入到数组中,接收三个参数:文件名,文件中分割的字符,是否含有标题。

data=np.genfromtext('data.cav',delimiter=',',names=True)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小末快跑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档