我需要通过每个元素的乘法逆元来交换矩阵列的元素,但是进行更改时,数字将四舍五入为零。我正在使用Python。
我试过了
matriz_atributos_max=np.array([
[1500,12,64,24],
[1800,12,128,18],
[5000,20,128,10],
])
matriz_atributos_max_nova=matriz_atributos_max.copy()
for i in range(3):
matriz_atributos_max_nova[i,0]=1/matriz_atributos_max[i,0]
matriz_atributos_max_nova
我也尝试过
for i in range(3):
matriz_atributos_max_nova[i,0]=round(1/matriz_atributos_max[i,0],6)
matriz_atributos_max_nova
我也尝试过
matriz_atributos_max_nova[:,0]=1/matriz_atributos_max_nova[:,0]
结果是一样的。结果是:
array([[ 0, 12, 64, 24],
[ 0, 12, 128, 18],
[ 0, 20, 128, 10]])
但我需要
array([[ 0.000666, 12, 64, 24],
[ 0.000555, 12, 128, 18],
[ 0.0002, 20, 128, 10]])
尝试一下,对于以科学记数法显示的数字,输出提供大约 9 位小数的精度。
import numpy as np
matriz_atributos_max = np.array([
[1500, 12, 64, 24],
[1800, 12, 128, 18],
[5000, 20, 128, 10],
], dtype=float)
reciprocal_first_column = 1 / matriz_atributos_max[:, 0]
matriz_atributos_max[:, 0] = reciprocal_first_column
print(matriz_atributos_max)
输出
[[6.66666667e-04 1.20000000e+01 6.40000000e+01 2.40000000e+01]
[5.55555556e-04 1.20000000e+01 1.28000000e+02 1.80000000e+01]
[2.00000000e-04 2.00000000e+01 1.28000000e+02 1.00000000e+01]]