python矩阵切片赋值_【Python】实例详解 numpy库ndarray多维数组的切片赋值操作

本文通过实例讲解了Python使用numpy库创建8x8矩阵并填充棋盘式图案的方法,详细解析了矩阵切片赋值的操作,包括行和列的切片规则以及步长的理解,并提供了相关学习资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例:Create a 8x8 matrix and fill it with a checkerboard pattern(创建一个8x8的棋盘式矩阵)

import numpy as np

z = np.zeros((8,8))

z[1::2,::2] = 1

[[0 0 0 0 0 0 0 0]

[1 0 1 0 1 0 1 0]

[0 0 0 0 0 0 0 0]

[1 0 1 0 1 0 1 0]

[0 0 0 0 0 0 0 0]

[1 0 1 0 1 0 1 0]

[0 0 0 0 0 0 0 0]

[1 0 1 0 1 0 1 0]]

上面实现的是矩阵中从第‘1’行开始每隔一行,从第‘0’列开始,每隔1列 赋值为1

import numpy as np

z = np.zeros((8,8))

z[::2,1::2] = 1

[[0 1 0 1 0 1 0 1]

[0 0 0 0 0 0 0 0]

[0 1 0 1 0 1 0 1]

[0 0 0 0 0 0 0 0]

[0 1 0 1 0 1 0 1]

[0 0 0 0 0 0 0 0]

[0 1 0 1 0 1 0 1]

[0 0 0 0 0 0 0 0]]

上面实现的是矩阵中从第‘0’行开始每隔1行,从第‘1’列开始,每隔1列 赋值为1

将上面两个操作合起来,我们将得到一个棋盘式的8x8矩阵:

import numpy as np

z = np.zeros((8,8))

z[1::2,::2] = 1

z[::2,1::2] = 1

[[0 1 0 1 0 1 0 1]

[1 0 1 0 1 0 1 0]

[0 1 0 1 0 1 0 1]

[1 0 1 0 1 0 1 0]

[0 1 0 1 0 1 0 1]

[1 0 1 0 1 0 1 0]

[0 1 0 1 0 1 0 1]

[1 0 1 0 1 0 1 0]]

关键理解点: z[1::2,::2] = 1 表达中’1:‘要从索引1行开始切片,如果是’1:n’则表示从索引1行到索引n行,如果是’1::2’,则表示从索引1行到最后一行,每2行进行切片,对列进行切片时也是相同的处理。

总结:不同维度用逗号隔开,取切片要用冒号,多维数组取步长要用冒号

参考:

1.菜鸟教程:https://www.runoob.com/numpy/numpy-ndexing-and-slicing.html

2.廖雪峰:https://www.liaoxuefeng.com/wiki/1016959663602400/1017269965565856

3.优快云:https://blog.youkuaiyun.com/brucewong0516/article/details/79186126?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值