ndarray对象在数据选取时既可以用“[ ]”区分不同的维度,也可以用逗号分隔,那么哪个更好呢?
ndarray对象在数据选取时既可以用“[ ]”区分不同的维度,也可以用逗号分隔,那么哪个更好呢?现在有一个矩阵B,其尺寸为两行四列三通道。
我们想选取矩阵B的第1通道的第1行,有以下两种方法实现。
方法一:用“[ ]”区分不同的维度
示例代码如下:
import numpy as np
B = np.array([[,
],
[,
],
[,
]])
E = B# 选取矩阵B的第1通道的第1行的第一种方法
运行结果如下:
http://pic1.hhai.cc/pic1/2022/2022-11/002/062.png
http://pic1.hhai.cc/pic1/2022/2022-11/002/063.png
方法二:用逗号分隔不同的维度
import numpy as np
B = np.array([[,
],
[,
],
[,
]])
F = B# 选取矩阵B的第1通道的第1行的第二种方法
运行结果如下:
http://pic1.hhai.cc/pic1/2022/2022-11/002/064.png
http://pic1.hhai.cc/pic1/2022/2022-11/002/065.png
上面这个示例中,两种方法没有区别,但是处理下面这个问题时就有区别了,甚至方法一根本不行。
矩阵A是一个9×9的零矩阵,我想把其第三行到第五行,第三列到第五列的元素的值置为5。
此时用[ ]区分不同的维度是不行的,代码如下:
import numpy as np
A = np.zeros((9, 9), dtype='uint8')
A = 5
运行结果如下:
http://pic1.hhai.cc/pic1/2022/2022-11/002/066.png
从以上运行结果可以看出,并没有达到我们想要的效果,
但如果用逗号分隔不同的维度,即把把代码“A = 5”改成“A = 5”就可以实现我们想要的效果了。
修改之后的代码如下:
import numpy as np
A = np.zeros((9, 9), dtype='uint8')
A = 5
运行结果如下:
http://pic1.hhai.cc/pic1/2022/2022-11/002/067.png
从上面的运行结果来看,用逗号分隔不同的维度实现了我们想要的效果。
页:
[1]