我正在尝试使用python 2.7中的以下代码定义浮点矩阵:
import numpy as np
A=np.array([[1/16,1/8,1/16],[1/8,1/4,1/8]])
print A
结果矩阵是底值矩阵(int值矩阵):
[[0 0 0]
[0 0 0]]
如何将其固定到浮动martix?
谢谢:)
答案 0 :(得分:1)
表达式1/16
是一个整数表达式。将整数1
除以整数16
,得到整数0
。
请改用浮点值,例如1.0 / 16.0
。
答案 1 :(得分:0)
正如某位编程人员所指出的那样,错误在于您对矩阵的定义:Python <3执行整数除法,因此numpy正确地假设数据类型为int并创建一个int数组。
除了通过将1/16
替换为1./16.
来解决此问题之外,您还可以始终强制numpy使用某种数据类型:
A = np.array([0, 1, True], dtype=float)