zoukankan      html  css  js  c++  java
  • numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

    numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

    import numpy as np
    

    使用array对象

    
    arr1=np.arange(12).reshape(3,4)
    print(arr1)
    print(type(arr1))
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    <class 'numpy.ndarray'>
    
    • flatten 展平
    a=arr1.flatten() 
    # 默认参数order=C,按照行进行展平;order=F,按照列进行展平,交叉展平;
    #A 或K参数用的不多,顾不变多记,到时候找到会用即可
    a[2]=1000
    print(arr1)  # arr1 并没有改变,flatten 返回的是copy
    a
    
    [[ 0  1  2  3]
     [ 4  5  6  7]
     [ 8  9 10 11]]
    
    
    array([   0,    1, 1000,    3,    4,    5,    6,    7,    8,    9,   10,
             11])
    
    • reshape 变换
    arr1=np.arange(12).reshape(3,4)
    b=arr1.reshape(-1)  #  b=arr1.reshape((-1)) 等同的效果意义 ,  
    b[2]=1000
    print(arr1)# 返回的是视图view
    
    [[   0    1 1000    3]
     [   4    5    6    7]
     [   8    9   10   11]]
    
    • ravel 变换
    arr1=np.arange(12).reshape(3,4)
    c=arr1.ravel()
    c
    
    array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
    
    c[2]=10001
    arr1  # 返回的是视图view
    
    array([[    0,     1, 10001,     3],
           [    4,     5,     6,     7],
           [    8,     9,    10,    11]])
    
    • resize
    arr1=np.arange(12).reshape(3,4)
    arr1.resize((4,3))  #  无返回值,即会对原始多维数组直接进行修改,也就是不能赋值
    arr1
    
    array([[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8],
           [ 9, 10, 11]])
    

    对matrix对象进行操作

    # 使用matrix对象的时候,返回的仍是matrix,得不到想要的结果,不过该matrix仍然可以使用numpy中的一些方法对其操作,比如sum,min,max等等
    d=np.matrix(np.arange(12).reshape(3,4))
    d
    
    matrix([[ 0,  1,  2,  3],
            [ 4,  5,  6,  7],
            [ 8,  9, 10, 11]])
    
    d.flatten()# 
    
    matrix([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11]])
  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/9551762.html
Copyright © 2011-2022 走看看