【Python入门第四十六天】Python丨NumPy 数组重塑

这篇具有很好参考价值的文章主要介绍了【Python入门第四十六天】Python丨NumPy 数组重塑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数组重塑

重塑意味着更改数组的形状。

数组的形状是每个维中元素的数量。

通过重塑,我们可以添加或删除维度或更改每个维度中的元素数量。

从 1-D 重塑为 2-D

实例

将以下具有 12 个元素的 1-D 数组转换为 2-D 数组。

最外面的维度将有 4 个数组,每个数组包含 3 个元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

newarr = arr.reshape(4, 3)

print(newarr)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

从 1-D 重塑为 3-D

实例

将以下具有 12 个元素的 1-D 数组转换为 3-D 数组。

最外面的维度将具有 2 个数组,其中包含 3 个数组,每个数组包含 2 个元素:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])

newarr = arr.reshape(2, 3, 2)

print(newarr)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

我们可以重塑成任何形状吗?

是的,只要重塑所需的元素在两种形状中均相等。

我们可以将 8 元素 1D 数组重塑为 2 行 2D 数组中的 4 个元素,但是我们不能将其重塑为 3 元素 3 行 2D 数组,因为这将需要 3x3 = 9 个元素。

实例

尝试将具有 8 个元素的 1D 数组转换为每个维度中具有 3 个元素的 2D 数组(将产生错误):

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

newarr = arr.reshape(3, 3)

print(newarr)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

返回副本还是视图?

实例

检查返回的数组是副本还是视图

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

print(arr.reshape(2, 4).base)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

上面的例子返回原始数组,因此它是一个视图。

未知的维

可以使用一个“未知”维度。

这意味着不必在 reshape 方法中为维度之一指定确切的数字。

传递 -1 作为值,NumPy 将为你计算该数字。

实例

将 8 个元素的 1D 数组转换为 2x2 元素的 3D 数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

newarr = arr.reshape(2, 2, -1)

print(newarr)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

注释:我们不能将 -1 传递给一个以上的维度。

展平数组

展平数组(Flattening the arrays)是指将多维数组转换为 1D 数组。

我们可以使用 reshape(-1) 来做到这一点。

实例

把数组转换为 1D 数组:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

newarr = arr.reshape(-1)

print(newarr)

运行实例

【Python入门第四十六天】Python丨NumPy 数组重塑

注释:有很多功能可以更改 numpy flatten、ravel 中数组形状,还可以重新排列元素 rot90、flip、fliplr、flipud 等。这些功能属于 numpy 的中级至高级部分。文章来源地址https://www.toymoban.com/news/detail-403904.html

到了这里,关于【Python入门第四十六天】Python丨NumPy 数组重塑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JAVA SE -- 第十六天

    (全部来自“韩顺平教育”) 一、文件 是保存数据的地方 2、文件流 文件在程序中是以流的形式来操作  流:数据在数据源(文件)和程序(内存)之间经历的路径 输入流:数据从数据源(文件)到程序(内存)的路径 输出流:数据从程序(内存)到数据源(文件)的路径

    2024年02月14日
    浏览(65)
  • 学习Android的第十六天

    目录 Android 自定义 Adapter Adapter 接口 SpinnerAdapter ListAdapter BaseAdapter 自定义 BaseAdapter 参考文档 Android ListView 列表控件 ListView 的属性和方法 表头表尾分割线的设置 列表从底部开始显示 android:stackFromBottom 设置点击颜色 cacheColorHint 隐藏滑动条 在上一篇文章中我们知道了啥是 Adap

    2024年02月19日
    浏览(58)
  • 第十六天-爬虫selenium库

    目录 1.介绍 2.使用 selenium 1.安装 2.使用 1.测试打开网页,抓取雷速体育日职乙信息 2.通过xpath查找 3.输入文本框内容 send_keys 4.点击事件 click 5.获取网页源码: 6.获取cookies 7.seleniumt提供元素定位方式:8种 8.控制浏览器前进、后退、刷新 9.控制鼠标 10. 设置等待 11设置后台运行

    2024年03月12日
    浏览(51)
  • 学习Bootstrap 5的第十六天

    目录 Flex(弹性)布局 弹性盒子(flexbox) 水平方向 垂直方向 对齐内容 等宽 伸展 顺序 自动外边距 包裹 对齐内容 子元素对齐 指定子元素对齐 响应式 Flex 类 Bootstrap 3 和 Bootstrap 4 5 的最大区别在于 Bootstrap 5 现在使用 flexbox 而不是浮动来处理布局。 弹性的框布局模块,可以更轻

    2024年02月06日
    浏览(40)
  • c入门第十六篇——学生成绩管理系统

    师弟:“师兄,我最近构建了一个学生成绩管理系统,有空试用一下么?” 我:“好啊!” 一个简单的学生成绩管理系统,基本功能包括:添加学生信息、显示所有学生信息、按学号查找学生信息、按姓名查找学生信息、添加学生成绩、修改学生成绩、显示学生的平均成绩

    2024年02月19日
    浏览(108)
  • 代码随想录-刷题第五十六天

    先介绍单调栈类型的题目, 通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时就要想到可以用单调栈 。时间复杂度为O(n)。 单调栈的本质是空间换时间,因为在遍历的过程中需要用一个栈来记录右边第一个比当前元素高的元素,优

    2024年01月17日
    浏览(41)
  • 学C的第二十六天【指针的进阶(二)】

    ========================================================================= 相关代码gitee自取 :C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 学C的第二十五天【指针的进阶(一)】_高高的胖子的博客-CSDN博客  ================================

    2024年02月13日
    浏览(76)
  • 第九十六天学习记录:Linux基础:实用操作Ⅰ

    注:第一张图与学习记录无关,是为了参与CSDN的AI绘图活动 1、Linux某些程序的运行,如果想要强制停止它,可以使用快捷键Ctrl+C中止 2、在命令输入错误时,也可以通过快捷键Ctrl+C快速退出当前输入 1、可以通过快捷键:Ctrl+D,退出账户的登录 2、退出某些特定程序的专属页面

    2024年02月12日
    浏览(55)
  • 第八十六天学习记录:Linux基础:基础指令Ⅰ

    Linux的目录结构是一个树型结构 Linux没有盘符的概念,只有一个根目录/,所有文件都在根目录下面 在Linux系统中,路径之间的层级关系使用:/来表示。(windows系统中用) 例如: /test/hello.txt /Chung.txt /Chung/test/hello.txt 无论是什么命令,用于什么用途,在Linux中,命令有其通用

    2024年02月11日
    浏览(43)
  • 秒懂百科,C++如此简单丨第十六天:指针

    目录 必看信息 Everyday English 前言  📝了解指针 📝定义指针 📝分析指针 📝运用指针 总结 ▶本篇文章由爱编程的小芒果原创,未经许可,严禁转载。 ▶本篇文章被收录于秒懂百科,C++如此简单专栏,欢迎订阅。 专栏亮点 1.每篇文章质量高,质量分保证在80分以上。 2.文章

    2024年02月01日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包