文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Numpy三维数组索引与切片如何实现

2023-07-05 14:55

关注

今天小编给大家分享一下Numpy三维数组索引与切片如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

这是一个三维数组,关于如何判断所定义的是几维数组,请观察数组的开头和结尾的中括号数目

import numpy as np#这是一个 2x2x3 的三维数组arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]]])print(arr)

在多维数组中,如果你忽略后续的索引参数,他打印出的结果将会降低一个维度

我将会打印它的完整数组,以便大家用以比对

Numpy三维数组索引与切片如何实现

将定义的三维数组降低了一个维度,成为了二维数组

#打印以下结果arrs = arr[1,2]#index 2 is out of bounds for axis 1 with size 2    索引2超出大小为2的轴1的范围

我们可以分析一下出现这种问题的原因:

1,首先我这是索引,arr[1,2] 的含义是,取编号是1的行,编号是2的行,我们可以思考一下,三维数组降低一个维度应是二维数组,二维数组降低一个维度应是一维数组,arr[1,2]中的“1”呢,应是三维数组中的编号为“1”的行,三维数组中编号为“1”的行,应是一个二维数组,arr[1,2]中的“2”呢,应该在二维数组的基础上,就要降低一个维度,为一维数组,在下图中一维数组只有两行,编号分别为“0”和“1”哪里来的编号为“2”呢?是不是超出索引范围了。

Numpy三维数组索引与切片如何实现

同样对三维数组来说,我们也可以使用类似视图的操作

arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]]])print(arr)#打印以下结果new_long = arr[0]new_long = 22print(arr)

Numpy三维数组索引与切片如何实现

我们经过将arr 三维数组中的编号为“0”的行arr[0]拿出来,赋值给了变量名new_long ,然后将new_long进行重新赋值为 “22”,new_long的值其实就是 arr[0]的值,我们将三维数组arr的打印出来,显然数组的元素值并没有发生任何变化。有的同学会问这有什么意义呢?

我们可以对数组切片做同样的操作来看看变化

import numpy as np#这是一个 2x2x3 的三维数组arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]],[[12,13,14],[15,16,17]]])print(arr)#打印以下结果#我把arr三维数组中编号为“1”,和编号为“2”的数组拿了出来赋值给一个新定义的变量名new_longnew_long = arr[0:2]# print(new_long)#我对new_long中的数据进行了篡改new_long[0] = 22# arr[0] = new_long#但是当我打印最初定义的三维数组 arr时,发现它的数据被篡改print(arr)

Numpy三维数组索引与切片如何实现

你看发生了变化,我将三维数组中前两行拿了出来,是两个二维数组,然后我对第一个二维数组进行篡改当我再次打印最初定义的三维数组时发现它的数据发生了变化。最初定义的数组也被篡改了

说明了什么在numpy模块中定义的数组无论是几维,都遵循一个定义数组的切片是原数组的视图,任何对于视图的修改都会反映到原数组上。

以上就是“Numpy三维数组索引与切片如何实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯