zoukankan      html  css  js  c++  java
  • Numpy基础

    Numpy 基础

    注:以下代码中np为numpy库的简写

    一、创建array

     

    # create array with datetype int16
    a = np.array([[1,2,3],[2,4,6]], dtype=np.int16)
    # all zeros array
    b=np.zeros((2,2),dtype=int)
    #all ones array
    c=np.ones((3,4), dtype=np.int)
    #numpy range1~10之间,公差为1的等差数列
    d=np.arange(1,10,1)
    #生成[0,4)之间步长为1的等差数列
    e=np.arange(0,4, 2)
    #linespace 生成1~10之间只有2个数的等差数列
    f=np.linspace(1,10,2,dtype=np.int)
    #输出结果
    print('数组 a:', a)
    print('全0数组b:', b)
    print('全1数组c:', c)
    print('[1,10) 步长为1的等差数列 d:', d)
    print('[0,4)步长为2的等差数列 e:', e)
    print('[1,10) 等分为5份的数列 f', f)

     

    终端结果

    二、运算

    #四则运算
    a=np.array([2,4,6])
    b=np.arange(1,4)
    c=a+b
    d=a-b
    e=a*b
    f=a/b
    print('a:', a)
    print('b:', b)
    print('加法 c:', c)
    print('减法 d:', d)
    print('乘法 e:', e)
    print('除法 f:', f)
    #<, >, ==逻辑运算
    g=a>2
    h=a<6
    j=a==4
    print('大于 g:', g)
    print('小于 h:', h)
    print('等于 j:', j)
    #指数运算、三角函数
    k=a**2
    l=np.sin(a)
    print('平方 k:', k)
    print('正弦 l:', l)
    #矩阵乘法
    m=np.transpose(np.array([1,1,1]))#矩阵转置
    n=np.dot(a,m)#矩阵乘法
    print('矩阵乘法 n:', n)

    输出结果:

    三、统计运算

    #求和,最小值,最大值
    a=np.arange(12).reshape((3,4))
    print('a:', a)
    print('所有元素之和:', np.sum(a))#行向求和
    print('每行元素之和:', np.sum(a, axis=1))#行向求和
    print('最小值:', np.min(a))#求最小值
    print('每行最小值:', np.min(a, axis=1))#行向求最小值
    print('最大值:', np.max(a))#求最大值
    print('每行最大值:', np.max(a, axis=1))#行向求最大值
    print('最小值索引', np.argmin(a))
    print('最大值索引', np.argmax(a))
    #平均值、中位数
    print('平均值', np.mean(a))
    print('每一行的平均值', np.mean(a, axis=1))
    print('中位数', np.median(a))
    print('每一列的中位数', np.median(a, axis=0))
    #非0元素的索引
    print('大于6的元素: ', a>6)
    mask=np.nonzero(a>6)
    print('非0元素所在的行: ', mask[0])
    print('非0元素所在的列: ', mask[1])

    终端输出:

     四、array取值

    # array 取值
    a=np.arange(2,14).reshape((3,4))
    print('a: ', a)
    print('取索引为1的行:', a[1, :])
    print('取第1行,列数范围为[0,2)的值:', a[1,0:2])
    print('取索引为2的列:', a[:,2])
    print('取索引为[1,2]的元素:', a[1,2])
    print('矩阵flatten:', a.flatten())

     四、array合并

    #array合并
    a=np.ones((1, 3))
    b=np.zeros((1,3))
    print('a: ', a,'shape :', a.shape)
    print('b: ', b)
    print('a,b列向合并:', np.vstack((a,b)))
    print('a,b行向合并:', np.hstack((a,b)))
    print('a,a,b,b 列向合并:', np.concatenate((a,a,b,b), axis=0))
    #矩阵拓维
    c=np.arange(3)
    print('c', c, '原来的shape :', c.shape)
    print(c[:,np.newaxis], 'shape: ', c[:,np.newaxis].shape)

    五、array分割

    #array分割
    a=np.arange(12).reshape((3,4))
    print('a: ', a)
    print('将a按列等分为两部分', np.split(a,2,axis=1))
    print('将a按列分为三部分', np.array_split(a,3,axis=1))
    print('将a按行等分为三部分', np.split(a,3,axis=0))

     

  • 相关阅读:
    String、StringBuffer与StringBuilder之间区别
    关于 hashCode() 你需要了解的 3 件事
    Java基础之 运算符
    Java基础之基础语法
    Java基础之Java 修饰符
    自动化-python介绍与基础
    vue访问本地后台
    vue请求报错Uncaught (in promise)
    使用vue-resource,get、post、jsonp都报未定义的错误。
    【蓝桥杯】历届试题 打印十字图
  • 原文地址:https://www.cnblogs.com/AlgrithmsRookie/p/11537407.html
Copyright © 2011-2022 走看看