Numpy中的数组变形操作01——reshape() 重塑, flatten()/reval() 扁平化
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() 扁平化相关推荐
- Numpy中ndarray的常见操作
NumPy(Numerical Python)是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要 ...
- Python中用pandas将numpy中的数组数据保存到csv文件
Python中用pandas将numpy中的数组数据保存到csv文件 本博客转载自:[1]https://blog.csdn.net/grey_csdn/article/details/7018587 ...
- python 数列筛选_对numpy中的数组条件筛选功能详解
在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...
- 1.numpy中三维数组的理解
numpy中三维数组的理解 三维数组图形--立方体 图片中的三维数组 RNN中序列数据的三维数组 迭代数据中的三维数组 三维数组图形–立方体 我们在做图像处理,RNN序列数据,迭代数据的时候会遇到三维 ...
- PIL中的Image和numpy中的数组array相互转换
PIL中的Image和numpy中的数组array相互转换 array转换成image 1 Image.fromarray(np.uint8(img)) https://www.cnblogs.com ...
- python数组排序-python - 按列在NumPy中对数组进行排序
python - 按列在NumPy中对数组进行排序 如何在第n列中对NumPy中的数组进行排序? 例如, a = array([[9, 2, 3], [4, 5, 6], [7, 0, 5]]) 我想 ...
- numpy中三维数组转变成二维数组
numpy中reshape()函数对三维数组进行转换成二维数组,见下面例子: 1 >>>a=np.reshape(np.arange(18),(3,3,2))2 >>&g ...
- 扩容是元素还是数组_Java中对数组的操作
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素.如:声明一个数组变量,numbers[100]来 ...
- python数组求和_Python NumPy中的数组求和函数sum | 坐倚北风
在Python中可以使用NumPy中的sum函数来进行数值求和,sum方法的格式如下: numpy.sum(a, axis=None, dtype=None, out=None, keepdims=, ...
最新文章
- PHP autoload 函数
- linux用户管理常用命令
- 程序员的创业陷阱:接私活
- 用对齐原则求结构体长度
- java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
- 毕业后想拿大厂offer?你得完整拥有这些计算机知识体系!
- 【网络】半双工和全双工
- 如何打开KML和KMZ文件并与卫星影像叠加
- IT 技能发展:10 大基本 IT 技能(精通一半你就是人才)
- STM32解码EM4100的曼彻斯特编码(库函数版本)
- Latex——插入罗马字母或更改字体为公式体
- 开放平台中的鉴权的实现
- c语言easyx改变字体大小,改变控制台字体大小
- oracle 外部表加载txt文件-导入银行信息-ok
- 商品规格常用的规格排列组合算法
- flutter常用库整理
- android3.0快捷键,向日葵新出版本安卓3.0手机远程控制手机详细教程
- win10蓝牙开关不见了_山灵MW200评测:玩转高清蓝牙全编码,MMCX换线耳机必备升级线...
- 国内低代码平台有哪些?织信informat怎么样?
- 现有MyCAT上新增一个库及MyCAT报错1184问题解决