Numpy操作复习I

#基础操作

  1. np.array(object,dtype,ndmin):object指list、tuple等对象,ndmin指最小维度

数组的全称是n维数组

np.array([1,0.2,1.25,45.0]) #手动输入

list1=[1,2,6]
list2=[2.0,6.2,1]
np.array(list1)  #列表变数组
np.array(list1,list2)  #合并两个列表变为一个数组
  1. x = np.array([....]),x.shape #查看数组形状

(4,) 表示是一维数组,长度为4

(2,3) 表示是二位数组,长度为2行3列

以此类推

  1. x.reshape(4,5) 将x转换为4行5列的二维数组

  1. x.ravel() 将二维数组降至一维数组

  1. x.ndmin 查看数组的维度

  1. x.size 查看数组中的元素数量

  1. x.dtye 查看数组中的元素类型

  1. x = np.arrange(10) 创建0-9的整数数列

  1. x=np.arrange(1,18,3) 创建1-18且步长为3的整数数列

arrange([start],stop,[step],dtype=None) [start,stop)

其中[]表示可以省略

  1. x = np.linspace(0,100,51) 创建一个0-100,元素个数为51的等差数列

linspace(start,stop,num,endPoint=true) endPoint表示是否包含最后一个stop

  1. x = np.logspace(start,stop,num,endPoint=True,base=10)

生成一个base^start--base^stop范围内的等比数列

  1. x = np.zeros(shape,dtype = None,order = 'C')

x = np.zeros(8) 创建一个一维的零数组,数组的元素个数为8

x = np.zeros((5,7)) 建一个5行7列的零数组

x = np.zeros_like(x1) 创建一个与x1形状相同的零数组x

  1. x = np.ones(shape,dtype = None,order = 'c')

与zeros基本相同,只不过创建的是一个1数组

  1. x = np.empty(shape,dtype = float , order ='c') 创建全是空值是数组

x = np.empty_like(prototype ,dtype)

  1. x = full(shape,fill_value,dtype,order = 'c') fill_type表示填充值

  1. x= eye(N,M,k=0) 创建一个对角线全是1的数组

当k>0 时,全1对角线往上偏

当k<0 时,全1对角线往下偏

N表示行数,M表示列数(一般情况下M=N)

  1. x = np.random.randn(d0,d1,d2,d3......dn)

生成标准正态分布之间的随机数,d表示维度

x = np.randon.randn(5) 生成5个在标准正态分布的随机数

#数组的相关功能

  1. 多维数组之间的操作

x1 + x2 , np.sin(x),x * 3,x+1,np.exp(x)

2.索引

基础索引

跟普通pyhton列表一样,通过下标进行访问

x[-3:] 从倒数第三个数一直到最后

x[5,2] 访问二维数组的5行2列的元素 (几行几列指的是下标,下标从0开始)

x[:2, 2:4] 筛选第3行往前(最开始到第二行)的所有行与第2,3列的交点元素

x[2:4] = 666 可以通过这种方式进行赋值

神奇索引

其实就是:用整数数组进行的索引,叫神奇索引

x[[3,4,7]] 访问x中下标为3,4,7的元素(x是一维数组时)

x[[0,2]] 访问第一行到第二行的所有元素(x是二维数组),注意,完整写法是X[[0, 2], :],列可以省略,但是行不能省略,即X[:, [0,2,3]] 访问1,3,4列的所有行

x[[0, 2, 3], [1, 3, 4]] 返回的是[(0,1), (2,3), (3,4)]位置的数字

布尔索引 返回的是一个bool数组(新数组)

使用 != 或 ~ 对条件进行否定,与用“&” , 或用“|”

x>5 返回x中每一个元素是否大于5的结果

x[x>5] 返回x中大于5的元素

x[x<=5] = 0

x[x>5] = 1

以上两步是将数组进行0-1化处理

x[:, 3]>5 把第3列大于5的行筛选出来(x是二维数组)

x[x>5] 返回二位数组x中大于5的所有元素,但返回的是一维的数组

因为x>5 返回是一个true还是false的二维下标,再用x[]时,就相当于下标索引

condition = (x%2==0) | (x>7)

x[condition] 输出x中大于7的数或者偶数

np.where(条件) 满足条件的元素的索引值

#排序

x.argsort():返回一个排序后的索引序列(最大值的索引在最右边),默认升序

x.argsort()[N:] 取前N个最大值的下标

x[x.argsort()[N:]] x中最大的N个数

np.sort(x,axis = 0) 按列对元素由小到大进行排序

np.sort(x,axis = 1) 按行对元素由小到大进行排序 不写axis的时候默认是按行

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值