numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组 您所在的位置:网站首页 numpy翻转数组 numpy 中的reshape,flatten,ravel 数据平展,多维数组变成一维数组

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

2023-03-23 00:31| 来源: 网络整理| 查看: 265

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]] 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]]) 三种方法

比如 a = [[1, 2], [3, 4], [5, 6]]

列表推导式 [i for j in a for i in j] 库函数 from itertools import chain list(chain.from_iterable(a)) sum小技巧 sum(a, [])

posted on 2018-08-28 23:54  多一点  阅读(10721)  评论(1)  编辑  收藏  举报



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有