1-7作业题:如下创建一个10*10的ndarray对象,第2行第2列开始后的右边界和下边界怎么也被替换为0了?

1-7作业题:如下创建一个10*10的ndarray对象,第2行第2列开始后的右边界和下边界怎么也被替换为0了?

import numpy as np
matrix = np.ones((10,10),dtype=np.int64)
matrix[1:-1,1:-1] = 0   # 这样替换后,第2行第2列开始后的右边界和下边界怎么也被替换为0了?
matrix

老师好:


代码和问题如下,麻烦指导下!

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好!matrix[1:-1, 1:-1] 实际上是指定从第二行到倒数第二行、以及从第二列到倒数第二列的所有元素。切片[1:-1,1:-1]其中逗号前的1:-1是根据索引取行的元素,即从第二行到倒数第二行。逗号后的1:-1是根据索引取列的元素,即从第二列到倒数第二列的所有元素。冒号前的值是包括的,但不包括冒号后的值,即-1是最后一索引,不包括-1便是取-2索引的数据,也就是倒数第二个索引的数据。所以结果是下图

https://img1.sycdn.imooc.com/climg/672b408309f7680608010404.jpg

若有不理解欢迎继续提问

祝学习愉快~

  • yixiu0199 提问者 #1

    老师好!

     

    那么我理解的没错,按以上代码应该是可以实现题目要求的“实现该矩阵边界全为1,里面全为0”。但我在电脑上运行后,得到的结果如下图:第2行第2列开始后的右边界和下边界不知什么原因也被替换为0了?

    https://img1.sycdn.imooc.com/climg/672ccefb09a39ca303410236.jpg

    2024-11-07 22:32:06
  • 好帮手慕小猿 回复 提问者 yixiu0199 #2

    同学,你好!同学尝试重新启动下jupyter notebook,再重新运行下代码,看能否解决。同学代码是没有问题的。

    祝学习愉快~

    2024-11-08 11:14:53
  • yixiu0199 提问者 回复 好帮手慕小猿 #3

    老师好! 重新启动jupyter notebook后,完美解决,多谢!

    2024-11-09 08:11:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师