• numpy方法介绍


    三、numpy系列

     

    1、np.maximum:(X, Y, out=None)

      X 与 Y 逐位比较取其大者;
      最少接收两个参数

    h=[[-2,2,10],[-5,-9,20]]

    hh=np.maximum(h, 1)

    hh=[[1,2,10],[1,1,20]]

    2、np.max:(a, axis=None, out=None, keepdims=False)
            求序列的最值
            最少接收一个参数
            axis:默认为列向(也即 axis=0),axis = 1 时为行方向的最值;

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

      创建np数组

      a[:,0] 输出结果为[1, 4]

      

     4、np.linspace(-5,5,200)[:,np.newaxis];,

      生成线性随机x数据,数据-5到5,总共200个

    5、np.random.normal(0,0.5,x_data.shape);

      生成0-0.5高斯分布的 x_data.shape类型的数据

    6、矩阵变换、变形

      a.reshape(-1) a.reshape(3, 4, -1) a.T # 转置 a.transpose() # 转置

      numpy.linalg.inv(a) # 求逆

      a.diagonal([offset, axis1, axis2]) #对角元

      numpy.einsum('iijj->ij',a) numpy.r_[a,b] # 在a中增加新行b numpy.c_[a,b] # 新列

    7、一般运算

      y = x # 建立引用,修改x会影响y

      y = x.copy() # 建立副本,修改x不会影响

      y a.dot(b) # 矩阵乘法

      numpy.dot(a,b) # 矩阵乘法 numpy.trace(a) #求迹

    8、特殊矩阵

      a = numpy.zeros([4,5]) # all zero

      a = numpy.ones([7,6]) # all one

      a = numpy.eye(4,7) # 4x7 diagonal 对角线

      a = numpy.diag(range(5)) # 5x5 diagonal 对角线

      a = numpy.empty((2,3))

      a = numpy.arange(10, 30, 5) # array([10, 15, 20, 25]), 1-D

      a = numpy.linspace(0, 2, 9) # 9 numbers from 0 to 2

      a = numpy.random.random((2,3)) # 随机数矩阵

      a = numpy.fromfunction(f,(5,4),dtype=int) # 从函数f(x,y)建立

    9、numpy.tile(A,reps)

      tile共有2个参数,A指待输入数组,reps则决定A重复的次数。整个函数用于重复数组A来构建新的数组。

      假设reps的维度为d,那么新数组的维度为max(d,A.ndim)。下面分三种情况进行讨论:

      (1)A.dim < d

      则向A中添加新轴扩充A的维度。维度大小可以从shape中看出,一般通过向shape对应的元组中添加1完成对A维度的扩充。扩充完成后,则可根据reps的值对A中相应维度的值进行重复。例如,一维数组shape为(3,),扩充至2维则shape值为(1,3),扩充至3维则shape值为(1,1,3)

      (2)A.dim > d

      将reps扩充至与A相同的维度。扩充方法同上,也是向shape对应元组中添1,然后再进行重复。例如,4维数组A的shape为(2,3,4,5),而reps为(2,2)只有2维,那么就要对reps添维进行扩充,得到(1,1,2,2)

      (3)A.dim = d

       不需要扩充,直接按reps的值对相应维度的值进行重复。

    >>>from numpy import *  
    >>> a = array([1,2,3])  
    >>>print a.shape  
    (3.)  
    >>>print a.ndim  
    1  
    >>>b = tile(a,2)  
    >>>print b  
    [1 2 3 1 2 3]  
    >>>print b.shape  
    (6,)  
    >>>print b.ndim  
    1  
    >>>c = tile(a,(2,3))  
    >>>print c  
    [[1 2 3 1 2 3 1 2 3]  
     [1 2 3 1 2 3 1 2 3]]  
    >>>print c.shape  
    (2,9)  
    >>>print c.ndim  
    2  
  • 相关阅读:
    为什么要前后端分离?有什么优缺点
    剑指offer-面试题21.包含min函数的栈
    操作系统典型调度算法
    那些年的那些事CISC和RISC发展中的纠缠
    基于MFC与第三方类CWebPage的百度地图API开发范例
    Linux进程通信----匿名管道
    续前篇-关于逆波兰表达式的计算
    逆波兰表达式的实现(也叫后缀表达式)
    剑指offer-面试题20.顺时针打印矩阵
    剑指offer-面试题.二叉树的镜像
  • 原文地址:https://www.cnblogs.com/raorao1994/p/8759907.html
Copyright © 2020-2023  润新知