Python中numpy.ndarray矩阵切片实现75%数据缩减问题求解
问题原因
你的testData实际是形状为(1, 400)的二维数组(仅有1行、400列,总元素数400),并非你预期的行、列长度均大于1的二维结构:
- 行方向执行
::2切片时,原始只有1行,切片后行维度长度保持为1 - 列方向执行
::2切片时,400列切片后剩余200列
最终得到的数组总元素为1*200=200,和你测试的结果一致。
正确实现方案
你需要先根据数据的实际业务含义,将一维展开的400个元素重构成行列乘积为400的二维结构,再做间隔切片:
- 重构数组形状(以最常见的20行×20列正方形结构为例,可根据你的数据实际布局调整行列数,只要行列乘积为400即可)
testData_2d = testData.reshape(20, 20)
- 执行行列间隔2的切片
reduced_data = testData_2d[::2, ::2]
最终得到的reduced_data形状为(10, 10),总元素数100,符合数据量减少75%的要求。
内容的提问来源于stack exchange,提问作者MikV89
相关产品推荐
相关产品推荐

