0

数组中的所有标准化元素都设置为 0。

我正在尝试为阵列创建反射器。当我通过 Python 中的第一个元素对数组中的所有元素进行归一化时(x[1:] /= x[0], x[0] = 1),我只会在第一个元素中得到全零和一个 1。

import numpy as np
#project x via householder
u = np.array([9,4,1,3,1])
x = np.array([3,4,1,3,1])

for i in range(1,len(u)):
  u[i] /= u[0]
u[0] = 1

结果应该是这样的(u = [1, 4/9, 1/9, 3/9, 1/9])

4

1 回答 1

1

当我们定义一个 numpy 数组时,我们可以通过在 np.array 中指定 dtype 来定义它的类型。

import numpy as np
#project x via householder
u = np.array([9,4,1,3,1], dtype = np.float64)

for i in range(1,len(u)):
  u[i] /= u[0]
u[0] = 1
print(u)

给我们

[1.         0.44444444 0.11111111 0.33333333 0.11111111]
于 2019-11-04T03:07:13.847 回答