用numpy中的标量乘法规范化二维矩阵

2024-09-29 23:26:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个矩阵thing,看起来像这样:

thing.shape
(8070829, 2)

我想用一些scalingfactor = np.iinfo(np.int16).max/thing.max()来缩放所有元素以规范化这些值。现在我正在迭代所有有效的元素,但速度非常慢:

for j, sample in enumerate(thing):
    thing[j] = [int(sample[0] * scalingfactor), int(sample[1] * scalingfactor)]

我以为我可以做到以下几点,但结果不一样:

np.multiply(thing, scalingfactor)

有没有更有效的方法来规范化矩阵?你知道吗


Tags: samplein元素fornp矩阵规范化速度
1条回答
网友
1楼 · 发布于 2024-09-29 23:26:19

使用矢量化的元素乘法,然后更改数据类型(即执行floor-ing)

(thing*scalingfactor).astype(int) # for thing as array type

或者在缩放版本上使用np.floor

np.floor(thing*scalingfactor)

使用问题:np.multiply(thing, scalingfactor)中发布的代码也可以,只需像前面所建议的那样,添加额外的floor-ing步骤。你知道吗

相关问题 更多 >

    热门问题