如何用这个列模块有效地划分列的每个元素?

2024-04-20 02:00:07 发布

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

我有一个很大的np.array

[1.,    2.,    3.,    ...]
[1000., 1001., 1002., ...]
[2000., 2001., 3002., ...]
[3000., 3001., 3002., ...]

例如。我想把每一列中的每个元素除以这个列的模。 这是第一列的示例:

列1={1,1000,2000,3000}

模块列1=

新列1={1/模块,1000/模块,2000/模块,3000/模块}

使用for循环太慢。如果没有for循环,我如何进行这种计算?你知道吗


Tags: 模块元素示例fornparray
2条回答
modules = np.sqrt(np.sum(arr * arr, axis=0))
new_arr = arr / modules

像这样?你知道吗

M = np.array([[1,2,3],[1000,1001,2002],[2000,2001,2002]])
M / np.sqrt(np.sum(M**2,axis=0))
array([[4.47213551e-04, 8.93890482e-04, 1.05959998e-03],
       [4.47213551e-01, 4.47392186e-01, 7.07106384e-01],
       [8.94427102e-01, 8.94337427e-01, 7.07106384e-01]])

相关问题 更多 >