reshape() 重塑, flatten()/reval() 扁平化

reshape()——>完成从低维到高维的转换
flatten()——>完成从高维到低维的转换 同时可以用ravel()实现

a. 基础用法举例

import numpy as np
help(np.ravel)

ravel(a, order=‘C’)
Return a contiguous flattened array.
a : array_like
Input array. The elements in a are read in the order specified by
order, and packed as a 1-D array.
order : {‘C’,‘F’, ‘A’, ‘K’}, optional

用reshape()创建二维数组arr

arr=np.arange(1,25.0).reshape((4,-1))  #tips:用-1直接计算另一个参数

array([[ 1., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])

对其进行进行扁平化(打平):

arr_=arr.flatten()
arr_2=arr.ravel()

array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])

b. ravel和flatten的区别

raval()进行扁平化处理时没有复制原来数组,只在列主序打平时复制了原数组,返回的是一个数组的视图
faltten()在所有情况下打平时都复制了原来的数组,分配了新的内存

#flatten打平的情况下
arr_[0] = 50
print(arr_)
print(arr)

array([ 50., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
array([[ 1., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])
flatten()不会影响到原本数组arr

#ravel打平情况下
arr_2[0] = 100
print(arr_2)
print(arr)

array([ 100., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,
14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24.])
array([[ 100., 2., 3., 4., 5., 6.],
[ 7., 8., 9., 10., 11., 12.],
[13., 14., 15., 16., 17., 18.],
[19., 20., 21., 22., 23., 24.]])
ravel()会影响到原本数组arr

尽量使用flatten()函数打平数组。

Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化相关推荐

  1. Numpy中ndarray的常见操作

    NumPy(Numerical Python)是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要 ...

  2. Python中用pandas将numpy中的数组数据保存到csv文件

    Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...

  3. python 数列筛选_对numpy中的数组条件筛选功能详解

    在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...

  4. 1.numpy中三维数组的理解

    numpy中三维数组的理解 三维数组图形--立方体 图片中的三维数组 RNN中序列数据的三维数组 迭代数据中的三维数组 三维数组图形–立方体 我们在做图像处理,RNN序列数据,迭代数据的时候会遇到三维 ...

  5. PIL中的Image和numpy中的数组array相互转换

    PIL中的Image和numpy中的数组array相互转换 array转换成image 1 Image.fromarray(np.uint8(img)) https://www.cnblogs.com ...

  6. python数组排序-python - 按列在NumPy中对数组进行排序

    python - 按列在NumPy中对数组进行排序 如何在第n列中对NumPy中的数组进行排序? 例如, a = array([[9, 2, 3], [4, 5, 6], [7, 0, 5]]) 我想 ...

  7. numpy中三维数组转变成二维数组

    numpy中reshape()函数对三维数组进行转换成二维数组,见下面例子: 1 >>>a=np.reshape(np.arange(18),(3,3,2))2 >>&g ...

  8. 扩容是元素还是数组_Java中对数组的操作

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素.如:声明一个数组变量,numbers[100]来 ...

  9. python数组求和_Python NumPy中的数组求和函数sum | 坐倚北风

    在Python中可以使用NumPy中的sum函数来进行数值求和,sum方法的格式如下: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, ...

最新文章

  1. PHP autoload 函数
  2. linux用户管理常用命令
  3. 程序员的创业陷阱:接私活
  4. 用对齐原则求结构体长度
  5. java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
  6. 毕业后想拿大厂offer?你得完整拥有这些计算机知识体系!
  7. 【网络】半双工和全双工
  8. 如何打开KML和KMZ文件并与卫星影像叠加
  9. IT 技能发展:10 大基本 IT 技能(精通一半你就是人才)
  10. STM32解码EM4100的曼彻斯特编码(库函数版本)
  11. Latex——插入罗马字母或更改字体为公式体
  12. 开放平台中的鉴权的实现
  13. c语言easyx改变字体大小,改变控制台字体大小
  14. oracle 外部表加载txt文件-导入银行信息-ok
  15. 商品规格常用的规格排列组合算法
  16. flutter常用库整理
  17. android3.0快捷键,向日葵新出版本安卓3.0手机远程控制手机详细教程
  18. win10蓝牙开关不见了_山灵MW200评测:玩转高清蓝牙全编码,MMCX换线耳机必备升级线...
  19. 国内低代码平台有哪些?织信informat怎么样?
  20. 现有MyCAT上新增一个库及MyCAT报错1184问题解决

热门文章

  1. 基于安卓的 gps定位系统的跑步健身助手
  2. SFFAI召集人蓄势待发!你准备好了吗?
  3. Office提示“由于本机的限制,该操作已被取消。请与系统管理员联系
  4. 看史上最牛的夫妻生活协议书
  5. 小程序碰上浏览器搜索入口!
  6. OKHttpUitls工具包post请求
  7. 向SVN提交项目时显示提交成功却没有上传
  8. swf 文件 打包 exe 方法
  9. 2016ACM/ICPC亚洲区大连站-补题
  10. 微软在盈利前确认裁员