【Python】实例详解numpy库ndarray多维数组的切⽚赋值操作
实例: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
[[00000000]
[10101010]
[00000000]
[10101010]
[00000000]
[10101010]
[00000000]
[10101010]]
上⾯实现的是矩阵中从第‘1’⾏开始每隔⼀⾏,从第‘0’列开始,每隔1列 赋值为1
import numpy as np
z = np.zeros((8,8))
菜鸟教程python2z[::2,1::2]=1
[[01010101]
[00000000]
[01010101]
[00000000]
[01010101]
[00000000]
[01010101]
[00000000]]
上⾯实现的是矩阵中从第‘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
[[01010101]
[10101010]
[01010101]
[10101010]
[01010101]
[10101010]
[01010101]
[10101010]]
关键理解点: z[1::2,::2] = 1 表达中’1:‘要从索引1⾏开始切⽚,如果是’1:n’则表⽰从索引1⾏到索引n⾏,如果是’1::2’,则表⽰从索引1⾏到最后⼀⾏,每2⾏进⾏切⽚,对列进⾏切⽚时也是相同的处理。
总结:不同维度⽤逗号隔开,取切⽚要⽤冒号,多维数组取步长要⽤冒号
参考:
1.菜鸟教程:
2.廖雪峰:
3.CSDN:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。