• numpy笔记


    记录numpy的几种操作:形状、降维、堆叠、取子集、广播、统计学

    形状

    reshape只是返回改变形状后的预览状态,如使用需赋值。

    resize方法的返回结果为空,但是它却真正的改变了组数的形状。

    降维

    # 在默认排序的情况下,优先按照数组的行顺序,逐个将元素将至一维。
    print(arr.ravel())
    print(arr.reshape(-1))
    print(arr.flatten())
    
    # 如果我们需要按照列的顺序把数组降到一维的话,需要把参数order设置成为"F"。
    print(arr.ravel(order='F'))
    print(arr.reshape(-1, order='F'))
    print(arr.flatten(order='F'))
    
    import numpy as np
    
    arr = np.array([[1,10,100],
                    [2,20,200],
                    [3,30,300]])
    print(arr)
    
    # flatten不会改变元素值
    print(arr.flatten())
    arr.flatten()[0]=2000
    print(arr)
    
    # ravel方法会改变元素的值
    print(arr.ravel())
    arr.ravel()[0]=1000
    print(arr)
    
    # reshape方法会改变元素的值
    print(arr.reshape(-1))
    arr.reshape(-1)[0]=3000
    print(arr)
    

    堆叠

    import numpy as np
    
    arr1 = np.array([[1, 10, 100],
                     [2, 20, 200],
                     [3, 30, 300]])
    arr2 = np.array([1, 2, 3])
    
    #按行堆叠
    print(np.vstack([arr1, arr2]))
    print(np.row_stack([arr1, arr2]))
    
    #按列堆叠
    arr3 = np.array([[5], [6], [7]])
    print(arr3)
    print(np.hstack([arr1, arr3]))
    print(np.column_stack([arr1, arr3]))
    

    多个数组横向堆叠时,要保证行数相同,纵向合并,则要保证列数相同。

    取子集

    
    import numpy as np
    
    arr1 = np.array([23, 12, 25])
    arr2 = np.array([21, 15, 23])
    
    # 取子集运算
    # 取出arr1中元素大于arr2中的元素. 对应位置比较
    print(arr1[arr1 > arr2])
    # [23 25]
    
    
    # 取出arr1中元素大于24中的元素
    print(arr1[arr1 > 24])
    # [25]
    
    # 将arr1中所有大于24的元素改为0
    print(np.where(arr1 > 24, 0, arr1))
    # [23 12  0]
    
    # 这里打印的是一个列表
    print(list(0 if x > 24 else x for x in arr1))
    
    print(np.where(arr2 > 16, 1, 0))
    # [1 0 1]
    

    广播运算

    矩阵形状不同的时候,自动扩展广播。

    统计学

    方差np.var(arr,axis)
    标准差np.std(arr,axis)

  • 相关阅读:
    ES6 import、export的写法
    不带分号可能会引起出错的情况
    npm传参技巧
    深度优先遍历和广度优先遍历
    WebGL的shader
    web component
    页面的beforeunload和unload的事件应用
    暴搜
    子集树与排列树
    概率论
  • 原文地址:https://www.cnblogs.com/xuehuiping/p/12273193.html
Copyright © 2020-2023  润新知