numpy

基本操作
np.arange类似range,生成numpy数组
np.random.randn按照shape生成随机正态分布的数据
arr.ndim查看数组维度
arr.shape查看数组每个维度的长度
arr.dtype查看数组的类型
np.array将输入数据转化为ndarray,不指定类型,则自动推断,默认复制所有输入数据
np.asarray将输入转为ndarray,若输入已经是ndarray则不再复制
arr.astype转换到指定数据类型
数组生成
np.ones根据shape和dtype生成全1数组
np.ones_like根据给定数组,生成一个shape一样的全1数组
np.zeros全0
np.zeros_like类似ones_like
np.empty根据给定的shape和dtype生成空数组
np.empty_like根据给定的数组,生成一个形状一样的空数组
np.full同上,生成指定数组的数组
np.full_like同上
np.eye生成N*N的特征矩阵(即对角线都是1 ,其余全是0)
np.identity同eye、

ndarray切片

numpy数组的切片与python内建列表的切片非常不一样,恰恰相反,numpy数组的切片是原数组的视图,也就是说当我们在数组的切片上做改变时,原数组上也会改变
arr[2:3].copy(): 如果需要复制的话,就要显示的使用copy方法
在不同维度上制作切片时,用逗号隔开

#如:
arr_1 = arr[:, :]

ndarray索引

ndarray的索引都是拷贝

布尔索引

使用布尔索引生成的是数据的拷贝,对原数据没有改变

神奇索引

直接将自己需要的数据的索引组成列表,再将列表传入当索引,直接可以选出自己想要的数据

import numpy as np

arr = np.empty((5,3))
for i in range(5):
    arr[i] = i
print(arr)
print("............")
print(arr[[1,3]])
print("............")
print(arr[[-1,-3]])

"""
out:
[[0. 0. 0.]
 [1. 1. 1.]
 [2. 2. 2.]
 [3. 3. 3.]
 [4. 4. 4.]]
............
[[1. 1. 1.]
 [3. 3. 3.]]
............
[[4. 4. 4.]
 [2. 2. 2.]]
"""

数组的转置和换轴

|

T方法转置
transpose方法换轴
swapaxes接受一对轴编号作为参数,并对轴进行调整用于重组数据

通用函数

一元通用函数
abs, fabs逐元素地计算整数,浮点数或复数的绝对值
sqrt计算平方根
square计算平方
exp计算每个元素的自然指数值e^x
log,log10,log2,log1p对数,底分别为:e,10,2。log1p为对数log(1+x)
sign计算每个元素的符号值:1(正数),0,-1(负数)
ceil计算最高整数值
floor计算最小整数值
rint将元素保留到整数位,并保留dtype
modf将数组的小数部分和整数部分按数组形式返回
isnan返回数组中的元素是否不是一个数值(是一个nan),返回布尔数组
isfinite, isinf反别返回数组中元素是否有限(非inf,非NaN),是否无限的,返回布尔数组
cos,cosh,sin,sinh,tan,tanh常规双曲三角函数
arc…加上前缀arc变成反三角函数
二元通用函数
subtract在第二个数组中,将第一个数组中包含的元素去除
divide,floor_divide整除
power将第二个数组的元素作为第一个数组对应元素的幂次方
maximum,fmax逐元素计算最大值,fmax忽略NaN
minximum,fmin逐元素计算最小值,fmin忽略NaN
mod按元素的求模计算
copysign将第一个数组的符号值改为第二个数组的符号值

np.where(x,y,c): 三目运算符,同“x if c else y”

面向数组编程

数组统计方法

sum沿轴对所有元素进行求和
mean数学平均,0长度数组的平均为NaN
std,var标准差和方差,可以选择自由度调整,默认分母为n
max,min最大最小值
armax,armin最大最小值的位置
cumsum从0开始元素累积求和
cumprod从1开始元素累积求积

布尔值数组的方法

在numpy中布尔值会被强制为1或者0,所有通常可以使用sum统计true的个数

arr.any()检查数组中是否至少含有一个True(非0)
arr.all()检查是否每一个值都为True(非0)

排序

np.sort()和python的sort方法有点不一样,np.sort是拷贝排序,而python自带的sort是直接在原序列上进行排序

唯一值与其他集合逻辑

unique(arr)计算数组每个元素的唯一值,并排序
intersect1d(x,y)计算x和y的交集,并排序
union1d(x,y)计算x与y的并集,并排序
in1d(x,y)计算x中的元素是否包含在y中,返回布尔值数组
setdiff1d(x,y)差集,在x中但不在y中的x的元素
setxor1d(x,y)异或集

使用数组进行文件输入输出

numpy可以在硬盘将数据以文本或者二进制文件的方式进行存储或读取,此刻只讨论二进制存读

np.save(filename, arr)存储为以.npy为后缀的二进制文件
np.savez(filename, a=arr_a, b=arr_b…)以键值字典的方式存储多个数组,读取时,并根据键获得对应数组
np.load(filename)读取npy文件,获得一个数组型或者字典型的数据

Numpy的线性代数

常用的numpy.linalg函数
diag将方阵的对角(或非对角)元素作为一维数组返回,或者将一维数组转换成方阵,并且在非对角线上有零点
dot矩阵点乘
trace计算对角元素和
det计算矩阵的行列式
eig计算方阵的特征值和特征向量
inv计算方阵的逆矩阵
pinv计算矩阵的Moore-Penrose伪逆
qr计算QR分解
svd计算奇异值分解(SVD)
solve求解x的线性系统Ax = b,其中A是方阵
lstsq计算Ax=b的最小二乘解

伪随机数生成

numpy.random函数中的部分函数
seed向随机数生成器传递随机状态种子
permutation返回一个序列的随机排序,或者返回一个乱序的整数范围内的序列
shuffle随机排序一个序列
rand从均匀分布中抽样样本
randint根据给定的由低到高的范围抽取随机整数
randn从均值0方差1的正态分布中抽样
binomial从二项分布中抽样
normal从正态分布中抽样
bata从beta分布中抽样
chisquare从卡方分布中抽样
gamma从伽马分布中抽样
uniform从均值[0.1)分布中抽样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值