You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用二维索引生成二维数组?解决图像数据降维无法绘图问题

解决二维图像数据筛选后保持形状的问题

你原代码里的循环切片逻辑有误,np.where(data1 > 0)返回的是包含行索引数组和列索引数组的元组,直接通过循环切片会把二维数组压缩成一维,导致形状改变。要保留二维形状,有两种常用方法:

方法一:替换非正数值为填充值(推荐)

如果只是想保留原图像的二维结构,把非正的数值替换成0(或者NaN、自定义背景值),这样数组形状始终是(512,512),可以直接用于绘图:

import numpy as np

data1 = D1.data
data1 = data1[0,0,...]  # 形状(512,512)
# 把所有<=0的数值替换成0(也可以换成你需要的其他值,比如np.nan)
data1_positive = np.where(data1 > 0, data1, 0)
print(data1_positive.shape)  # 输出(512,512)

方法二:创建新数组填充正数值

如果需要严格保留原正数值的位置,其余位置设为特定值,可以创建一个和原数组同形状的空数组,再通过索引填充:

import numpy as np

data1 = D1.data
data1 = data1[0,0,...]  # 形状(512,512)
data1_inx = np.where(data1 > 0)

# 创建和原数组同形状的零数组
data1_positive = np.zeros_like(data1)
# 用索引把原数组中的正数值填充到新数组对应位置
data1_positive[data1_inx] = data1[data1_inx]
print(data1_positive.shape)  # 输出(512,512)

这两种方法都能保持数组的二维结构,直接用于图像绘制。

内容的提问来源于stack exchange,提问作者vintz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:15:56