Pysci,Numpy

作者: 谁是我的小超人 | 来源:发表于2017-09-03 12:01 被阅读0次

    first step

    首先要学习py的一些有用的开源包,方便编写代码

    • Numpy
      区别于matlab,py更多的使用array数组。
    1. index的的起始位置为0.
    2. 更多的使用refence,而不是copy传参
    3. Numpy中的class matrix是class array的一个子集
    4. Numpy的rank函数,当应用于数组类型时返回的是N 维的数组。但是应用于matrix函数时返回的是N×1的矩阵类型的返回类型。
    5. shape = N×1,1×N,N。代表的是不一样的类型。

    slicing

    有两种方法来获取数组中的某一列数据:1. 使用整数和slice混合的方法将会得到更小的rank。2. 仅使用slice这种方法会得到跟原来数组一样rank的数组,因为slicing 访问数组会返回比末尾范围小一的数组值。

    import numpy as np
    a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
    row_r1 = a[1, :]  # rank =1, shape = (4,)
    row_r2 = a[1:2, :] # rank =2 ,shape = (1, 4)
    
    • integer indexing
    print(a[[0, 1, 2], [0, 1, 0]]) #通过元素来访问数组
    print(np.array([a[0, 0], a[1, 1], a[2, 0] ] ) ) # 另外一种方法
    

    trick :小技巧

    b= np.array([0, 2, 0, 1])
    print(a[np.arange(4), b])# 通过定义数组来访问指定的integer slicing。
    

    通过bool值来筛选数组

    a = np.array([ [1, 2 ], [3, 4], [5, 6]])
    bool_idx = (a > 2)
    print(bool_idx) # 输出由判决式(true,false)构成的数组。
    print(a[bool_idx])# 通过判决式构成的数组来indexing 数组
    #可以得到满足条件的元素组成的rank =1 的数组
    print(a[a > 2])# 简化版
    

    相关文章

      网友评论

        本文标题:Pysci,Numpy

        本文链接:https://www.haomeiwen.com/subject/ggndjxtx.html