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]])
  • 相关阅读:
    多态
    封装
    继承
    面向对象
    2.机器学习相关数学基础
    作业1 机器学习概述
    作业15 语法制导的语义翻译
    作业14 算符优先分析
    作业13 自下而上语法分析
    作业12 实验二 递归下降语法分析
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/9551762.html
Copyright © 2011-2022 走看看