python数组赋值失败
Posted 小乖乖的臭坏坏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数组赋值失败相关的知识,希望对你有一定的参考价值。
一般我们习惯对数组进行初始化,例如全部赋值为0,但是在赋值后却发现数组并未更新。
代码:
import numpy as np
a = np.array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]])
def set(a):
a[1, 1] = 0.2
return a
set(a)
print(a)
输出:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
**问题出在:数组a被默认为整型数组,因此小数赋值时会被自动四舍五入。**虽然python不是一个对于数据类型很严谨的语言,但是若不注重这些细节还是很容易出错的。
解决方式1:
将数组初始化时就赋值为浮点型数组
a = np.array([[0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0]])
解决方式2:
使用np.zeros进行初始化
a = np.zeros((4,4))
以上是关于python数组赋值失败的主要内容,如果未能解决你的问题,请参考以下文章