Python 3.x Numpy没有将正确的数组插入多维数组

Python 3.x Numpy没有将正确的数组插入多维数组,python-3.x,numpy,Python 3.x,Numpy,我有一个矩阵 M = np.array([ [1, -2, -2, -2, 1, 2], [0, 3, -2, -3, 1, 3], [3, 0, 0, 1, -1, 2], [3, -3, -2, 0, 1, 1], [0, -3, 3, -3, -3, 2] ]) 我试图将第一行本身替换为某个数字的模N=2497969412496091 我已经在IDE中玩了一段时间了,尽管 >>> M[0] % N array([1, 24979694124960

我有一个矩阵

M = np.array([
[1, -2, -2, -2, 1, 2],
[0, 3, -2, -3, 1, 3],
[3, 0, 0, 1, -1, 2],
[3, -3, -2, 0, 1, 1],
[0, -3, 3, -3, -3, 2]
])
我试图将第一行本身替换为某个数字的模
N=2497969412496091

我已经在IDE中玩了一段时间了,尽管

>>> M[0] % N
           
array([1, 2497969412496089, 2497969412496089, 2497969412496089, 1, 2], dtype=int64)
在我执行
M[0]=M[0]%N
并打印矩阵
M
之后,我得到

>>> M[0]
           
array([1, -746726695, -746726695, -746726695, 1, 2])

我还尝试在临时变量中复制中间步骤
M[0]%N
,然后将其设置为等于
M[0]
,但问题仍然存在。这里发生了什么?

您的数组是
np.int32

print(type(M[0][0]))  # <class 'numpy.int32'>
输出:

[[ 1 2497969412496089 2497969412496089 2497969412496089       1            2]
 [ 0                3               -2               -3       1            3]
 [ 3                0                0                1      -1            2]
 [ 3               -3               -2                0       1            1]
 [ 0               -3                3               -3      -3            2]]

谢谢,在指定
dtype=np.int64
后,它似乎工作正常。我刚刚阅读了
numpy.array
的文档,它说默认的数据类型基于保存对象所需的最小类型,但是当我只执行
M[0]%N
时,它怎么会输出正确的答案呢,甚至显示
dtype=int64
?@Lig,因为您创建了一个新数组,其中的数字不适合int32,所以它将其创建为int64。将其重新签名到旧数组不会更改其数据类型,因此会导致整数溢出
[[ 1 2497969412496089 2497969412496089 2497969412496089       1            2]
 [ 0                3               -2               -3       1            3]
 [ 3                0                0                1      -1            2]
 [ 3               -3               -2                0       1            1]
 [ 0               -3                3               -3      -3            2]]