2021-01-10NumPy使用教程

目录

NumPy数组创建:

NumPy数组属性:

NumPy数组索引和切片

NumPy数组Broadcast

NumPy数组操作

NumPy数组计算

NumPy数组排列和条件筛选

NumPy数组字节序交换

NumPy数组副本和视图

NumPy矩阵库Matrix

NumPy线性代数

NumPy IO

NumPy Matplotlib绘图


NumPy是python中很常用的基础库,在这里做个笔记。尽管内容不很全面,若加上自己举一反三的能力,掌握这些基本够用了。

  1. NumPy数组创建:

    1. np.empty(shape, dtype = float, order = 'C')  #shape形状, dtype类型, order存储元素的顺序(一般不用指定这一项)。
    2. np.zeros(shape, dtype = float, order = 'C')
    3. np.ones(shape, dtype = float, order = 'C')
    4. np.asarray(numpy, dtype = float, order = 'C')
    5. np.arange(start, stop, step, dtype)
    6. np.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  2. NumPy数组属性:

    1. ndarray.ndim  秩,即轴的数量或维度的数量
    2. ndarray.shape  数组的维度,对于矩阵,n 行 m 列
    3. ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
    4. ndarray.dtype  ndarray 对象的元素类型
  3. NumPy数组索引和切片

    1. a[2:7:2]
    2. a[...,1]
    3. x[[0,1,2], [0,1,0]] #取3个元素,坐标分别是    (0,0)(1,1),(2,0)
    4. x[x > 5] #返回大于5的元素(返回结构是一维数组)
  4. NumPy数组Broadcast

    1. np.tile(b, (4, 1)) # 重复 b 的各个维度
  5. NumPy数组操作

    1. a.reshape(4,2)
    2. np.transpose(a)   #行列对调
    3. np.broadcast_to(a,(4,4))  #返回一个新形状的数组视图
    4. numpy.expand_dims(arr, axis)  #在指定维度加一个维度
    5. numpy.squeeze(arr, axis) #删除长度为1的一维数组
    6. numpy.concatenate((a1, a2, ...), axis)  # 数组链接
    7. numpy.stack(arrays, axis) #数组堆叠,会增加一个维度
    8. np.split(a,3)  #将数组分为三个大小相等的子数组
  6. NumPy数组计算

    1. np.bitwise_and(a, b) #与
    2. np.bitwise_or(13, 17) # 或
    3. np.invert(a) # 非
    4. np.left_shift(10,2) #左移
    5. np.right_shift(40,2) #右移
    6. np.char.add(['hello'],[' xyz'])  #连接两个字符串 (NumPy主要是数据处理,虽然它支持对字符串操作,但我们不需要理解很多)
    7. np.sin(a), np.cos(a*np.pi/180), np.tan(a*np.pi/180)
    8. np.around(a, decimals = 1)  #四舍五入,保留小数点后一位有效数字
    9. np.floor(a) #向下取整
    10. np.ceil(a) #向上取整
    11. np.add(a,b), np.subtract(a,b), np.multiply(a,b),np.divide(a,b) #加减乘除
    12. np.reciprocal(a) #倒数
    13. np.power(a,2) #指数计算,若第二个元素是数组,则计算对应元素的指数
    14. np.mod(a,b) #取模,若第二个元素是数组,则计算对应元素取模
    15. np.amin(a,1) #计算指定维度的最小值
    16. np.amax(a) #计算指定维度的最大值
    17. np.ptp(a, axis = 1) # 计算指定维度最大最小值的差
    18. np.percentile(a, 50, axis=0) #获取百分位数
    19. np.median(a, axis = 0)  #获取中位数,中位数就是百分位数的特例
    20. np.mean(a, axis = 0) #获取某一个维度的算术平均值
    21. np.average(a, axis = 1, weights = wt)) #获取加权平均值,若不指定加权值,则结果就是算术平均值
    22. np.std([1,2,3,4]) # 获取标准差
    23. np.var([1,2,3,4]) #获取方差
  7. NumPy数组排列和条件筛选

    1. numpy.sort(a, axis, kind, order) # kind 排列算法,默认快速排序, order指定排列字段
    2. numpy.argsort(a, axis, kind, order) # 和sort不同的是,argsort返回对应数组的索引
    3. numpy.lexsort  #用于对多个序列进行排序
    4. np.partition(a, (1, 3)) # 小于 1 的在前面,大于 3 的在后面,1和3之间的在中间
    5. np.argmax(a, axis = 0) #返回指定维度最大值
    6. np.argmin(a, axis = 0) #返回指定维度最小值
    7. np.nonzero (a) #返回非零元素索引
    8. np.where(x > 3) # 大于 3 的元素的索引
    9. np.extract(condition, x) #使用条件提取元素
  8. NumPy数组字节序交换

    1. numpy.ndarray.byteswap() # 大小端字节序交换
  9. NumPy数组副本和视图

    1. 视图
      1. numpy 的切片操作返回原数据的视图
      2. 调用 ndarray 的 view() 函数产生一个视图
    2. 副本:
      1. Python 序列的切片操作,调用deepCopy()函数
      2. 调用 ndarray 的 copy() 函数产生一个副本
  10. NumPy矩阵库Matrix

    1. a.T #转置数组
    2. np.matlib.empty((2,2)) #返回一个2*2矩阵,填充为随机数据
    3. np.matlib.zeros((2,2)) #返回一个2*2矩阵,填充为0
    4. np.matlib.ones((2,2)) #返回一个2*2矩阵,填充为1
    5. np.matlib.eye(n = 3, M = 4, k = 0, dtype = float) # 返回n行m列,对角元素为1,其他元素为0的矩阵
    6. np.matlib.identity(5, dtype = float) #返回一个单位矩阵
    7. np.matlib.rand(3,3) #创建指定大小的矩阵
  11. NumPy线性代数

    1. numpy.dot(a, b, out=None) #两个数组的点积,即元素对应相乘
    2. np.vdot(a,b) #两个向量的点积
    3. np.inner(np.array([1,2,3]),np.array([0,1,0])) # 返回一维数组的向量内积。对于更高的维度,它返回最后一个轴上的和的乘积
    4. np.matmul(a,b) #返回两个数组的矩阵乘积
    5. np.linalg.det(a) #计算输入矩阵的行列式
    6. numpy.linalg.solve() #矩阵形式的线性方程的解
    7. np.linalg.inv(x) #计算矩阵的乘法逆矩阵
  12. NumPy IO

    1. np.save('outfile.npy',a)
    2. p.load('outfile.npy')
  13. NumPy Matplotlib绘图

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y) 
plt.show()

内容摘抄:https://www.runoob.com/numpy/numpy-tutorial.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值