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数组赋值失败的主要内容,如果未能解决你的问题,请参考以下文章

数组重新赋值失败

3-变量的解构赋值

ES6解构赋值

c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值

Python的赋值与复制

python数组赋值