美文网首页
第四节聚合操作及索引、fancy indexing

第四节聚合操作及索引、fancy indexing

作者: barriers | 来源:发表于2020-02-14 17:29 被阅读0次

    1聚合

    import numpy as np
    
    L = np.random.random(100)
    
    # 矩阵求和
    np.sum(L)
    
    # 矩阵求最值
    np.min(L)
    np.max(L)
    L.min()
    L.max()
    L.sum()
    
    X = np.arange(16).reshape(4, -1)
    # 算出一个和
    X.sum()
    # 沿着行方向上计算,求出每列的值
    X.sum(axis=0)
    # 沿着列方向上计算,求出每行的值
    X.sum(axis=1)
    # 求所有元素的乘积
    np.prod(X)
    # 对矩阵所有元素加一求积
    np.prod(X + 1)
    np.mean(X)
    np.median(X)
    # 求L矩阵中50%的数所小于等于的某个数
    np.percentile(L, q=50)
    # 求方差
    np.var(L)
    # 求标准差
    np.std(L)
    # 正态分布生成
    np.random.normal(0, 1, size=10000)
    

    2找索引

    找索引主要使用arg相关的函数

    x = np.random.normal(0, 1, size=10000)
    # 找出最小值的索引
    np.argmin(x)
    

    3排序及使用索引

    x = np.arange(16)
    # 将顺序向量变成乱序向量
    np.random.shuffle(x)
    # 排序,返回一个新的排好序的向量,原向量不变
    np.sort(x)
    # 排序,就地排序,原向量改变
    x.sort()
    
    X = np.random.randint(10, size=(4, 4))
    # 将每行元素进行排序
    np.sort(X)
    # 将每列进行排序,axis默认为1
    np.sort(X, axis=0)
    # 返回一个排好序的矩阵,矩阵中元素为原矩阵的对应的排好序的矩阵的元素在原矩阵中的下标
    np.random.shuffle(x)
    np.argsort(x)
    # 3前面的元素都比3小,不一定有序,3后面的都比3大,不一定顺序
    np.partition(x, 3)
    
    np.argsort(X, axis=1)
    np.argsort(X, axis=0)
    np.argpartition(X, 2, axis=1)
    

    4Fancy Indexing

    import numpy as np
    
    x = np.arange(16)
    # 花式索引
    ind = [3, 5, 8]
    # 取出对应下标的元素
    x[ind]
    ind = np.array([[0, 2], [1, 3]])
    # 返回一个对应下标组成的二维矩阵
    x[ind]
    
    X = x.reshape(4, -1)
    row = np.array([0,1,2])
    col = np.array([1, 2, 3])
    # 返回一个row和col一一对应的下标元素组成的一维矩阵
    X[row, col]
    # 返回一维矩阵
    X[0, col]
    # 返回二维矩阵
    X[:2, col]
    col = [True, False, True, True]
    X[1;3, col]
    

    5array的比较

    x = np.arange(16)
    # 返回一个值为布尔型的矩阵
    x < 3
    x == 3
    x != 3
    # 复杂型的比较
    2*x == 24 - 4*x
    X = x.reshape(4, -1)
    X < 6
    # 统计x中元素小于3的个数
    np.sum(x<=3)
    # 统计传入的数据中的非0元素
    np.count_nonzero(x<=3)
    # 有任一一个元素为True,就返回True
    np.any(x==0)
    # 所有元素都要为True,就返回True
    np.all(x>=0)
    # 统计每行中偶数的个数
    np.sum(X%2==0, axis=1)
    # 统计每行中是否所有元素大于0
    np.all(X>0, axis=1)
    # 统计3-10的个数
    np.sum((x>3) & (x<10))
    # 大于10或则为偶数的个数
    np.sum((x%2==0) | (x>10))
    # 非运算,不等于0的个数
    np.sum(~(x==0))
    # 取出x中小于5的数据
    X[X<5]
    # 取出行中最后一个元素能整除3的行
    X[X[:, 3] % 3 ==0, :]
    

    相关文章

      网友评论

          本文标题:第四节聚合操作及索引、fancy indexing

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