numpy ravel、flatten、squeeze、reshape
numpy:手册
一、ravel、flatten、squeeze、reshape
- ravel(): 不会产生原来数据的副本
- flatten():返回源数据副本
- squeeze():只能对维度为1的维度降维
- reshape(-1):可以拉平多维数组
二、把多维的数组降为1维
import numpy as npdata = np.linspace(1,12,12).reshape(3,4)
print(data)
print('-'*20)
print(data.ravel())print('-'*20)
print(data.flatten())print('-'*20)
print(data.squeeze())[[ 1. 2. 3. 4.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]
--------------------
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]
--------------------
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]
--------------------
[[ 1. 2. 3. 4.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]
三、可以看到.ravel() .flatten()都将多维数组降至一维,而squeezeqz只能对shape值为1的维度降维,在这种情况下无法降维。
import numpy as npdata = np.linspace(1,12,12).reshape(12,1)
print(data)
print('-'*20)
print(data.squeeze())
print('-'*20)
data = np.linspace(1,12,12).reshape(1,12)
print(data)
print('-'*20)
print(data.squeeze())[[ 1.][ 2.][ 3.][ 4.][ 5.][ 6.][ 7.][ 8.][ 9.][10.][11.][12.]]
--------------------
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]
--------------------
[[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]]
--------------------
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]
三、产生源数据的副本,对数据更改时会影响原来的数组;
import numpy as npdata = np.linspace(1,12,12).reshape(3,4)
print(data)
print('-'*20)
data.ravel()[3]=100
print(data)
print()print('-'*20)
data = np.linspace(1,12,12).reshape(3,4)
print(data)
print('-'*20)
data.flatten()[3]=100
print(data)print()print('-'*20)
data = np.linspace(1,12,12).reshape(1,12)
print(data)[[ 1. 2. 3. 4.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]
--------------------
[[ 1. 2. 3. 100.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]--------------------
[[ 1. 2. 3. 4.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]
--------------------
[[ 1. 2. 3. 4.][ 5. 6. 7. 8.][ 9. 10. 11. 12.]]--------------------
[[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.]]
--------------------
[[ 1. 2. 3. 100. 5. 6. 7. 8. 9. 10. 11. 12.]]
numpy ravel、flatten、squeeze、reshape相关推荐
- 学习笔记27—python中numpy.ravel() 和 flatten()函数
简介 首先声明两者所要实现的功能是一致的(将多维数组降位一维).这点从两个单词的意也可以看出来,ravel(散开,解开),flatten(变平).两者的区别在于返回拷贝(copy)还是返回视图(vie ...
- 【增减维度】numpy和torch中的squeeze、unsqueeze理解
文章目录 1 为何要增减维度 2 numpy中的squeeze 函数 3 torch中的squeeze 函数 4 torch中的unsqueeze 函数 1 为何要增减维度 神经网络conv2d的输入 ...
- Numpy ravel和flatten区别
作用相同:将多维数组变成一维 区别:比如有a.b数组 其中 b=a.copy() a.b两个数组数据完全一样 对a使用ravel 得到c c=a.ravel() 对b使用fla ...
- numpy——ravel()和flatten()
目录 功能 用法 区别 flatten() ravel() 功能 这两个函数的功能都是将多维数组转换成一维 用法 import numpy as np arr = np.array([[1, 2],[ ...
- numpy中ravel函数、flatten函数的功能及差异
numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...
- numpy ravel、squeeze函数
1.ravel函数 函数原型 numpy.ravel(a, order='C') 函数说明 ravel函数将多维数组变成一维数组. 函数使用 >>> a = np.reshape(n ...
- Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度
1. 创建一个 [3,5] 所有元素为 True 的数组 In [162]: b = np.ones((3,5), dtype=bool)In [163]: b Out[163]: array([[ ...
- 【ML】numpy ravel、c_、r_函数使用说明(结合实际案例)
[ML]numpy ravel.c_.r_函数使用说明(结合实际案例) 基本使用 ravel()函数用法 c_函数用法 r_函数用法 实践 基本使用 ravel()函数用法 ravel函数将一个多维数 ...
- python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)
python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组.使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank) 目录
最新文章
- 计算机编程语言python-初学者最容易学的六种编程语言
- oracle define (hex 26),oracle 特殊字符轉義
- 将数字字符串格式化为指定长度
- 十进制转二进制、二进制转十进制
- 数据库事务转载基础二:oracle事务隔离级别
- 30/100. Queue Reconstruction by Height
- SAP Spartacus Breadcrumbs Component的显示问题讨论
- python控制浏览器导出数据_Django导出数据为Excel,调用浏览器下载
- hashmap remove 没释放内存_java从零开始手写 redis(13)HashMap 源码原理详解
- Redis服务器被劫持风波
- mockito简单教程
- LVGL学习 lv_label
- ffmpeg x264编码参数
- 软件众包外包平台汇总
- Freemyapps赚取积分终极图文教程
- brew 特别慢 解决方案
- Centos7__CA认证
- python 逐行调试工具_常用的 Python 调试工具,Python开发必读-乾颐堂
- 开发者除了技术硬实力之外,还有哪些不可或缺的软实力
- 学简单python好学吗_python好学吗