我知道这可能是一个愚蠢的问题(请告诉我)。 当我打印出一个具有形状(2493452)的数组时,应该有2行,对吗?为什么它看起来像下面的多行(例如,第一行是[0 0…0 0]),然后对于第二个输出(222836),这意味着有2行和222836列
(2, 493, 452)
[[[ 0 0 0 ... 0 0 0]
[ 1 1 1 ... 1 1 1]
[ 2 2 2 ... 2 2 2]
...
[490 490 490 ... 490 490 490]
[491 491 491 ... 491 491 491]
[492 492 492 ... 492 492 492]]
[[ 0 1 2 ... 449 450 451]
[ 0 1 2 ... 449 450 451]
[ 0 1 2 ... 449 450 451]
...
[ 0 1 2 ... 449 450 451]
[ 0 1 2 ... 449 450 451]
[ 0 1 2 ... 449 450 451]]]
(2, 222836)
[[ 0 0 0 ... 492 492 492]
[ 0 1 2 ... 449 450 451]]
这是我的代码:
original_image=cv2.imread("mickey mouse.jpg")
img=cv2.cvtColor(original_image,cv2.COLOR_BGR2RGB)
vectorized=img.reshape((-1,3))
#print(vectorized.shape)
#print(vectorized)
ind=np.indices((m,n))
print(ind.shape)
print(ind)
ind.resize((2,m*n))
print(ind.shape)
print(ind)
indices
为两个维度中的每个维度创建“索引”:结果是一个(2,m,n)数组
ind[9,:,:]
是第一维(m,n)数组的索引实际上,这应该是
reshape
,但它从原始ind
生成(2,m*n)形状数组在讨论这些索引数组时,行/列没有太多意义
看一个较小的案例(来自另一个最近的SO,How to get all indices of NumPy array, but not in a format provided by np.indices())
meshgrid
执行相同的操作,但作为2个数组的列表:当您有一个形状为
(2, 493, 452)
的numpy数组并在控制台上打印出来时,numpy将像打印两个形状为(493, 452)
的数组一样进行打印。这让我很长一段时间都感到厌烦。也许您正在考虑原始数组,比如452个shape(2, 493)
数组,在这种情况下,您可能希望控制台输出有所不同即使控制台输出与您期望的不匹配,形状也总是由
arr.shape
给出相关问题 更多 >
编程相关推荐