Numpy Ndaray分配问题

Numpy Ndaray分配问题,numpy,numpy-ndarray,numpy-slicing,Numpy,Numpy Ndarray,Numpy Slicing,我无法找出这段代码的错误。你能帮我了解出了什么问题以及如何解决吗 import numpy as np T = np.random.randint(0,5,(3,2,3)) print(T) print(T[0,0]) print(T[0,0].sum()) T[0,0] = T[0,0]/T[0,0].sum() print(T) 我得到的输出: [[[4 1 3] [1 4 4]] [[0 0 4] [2 2 2]] [[2 4 2] [2 1 4]]] [4 1 3]

我无法找出这段代码的错误。你能帮我了解出了什么问题以及如何解决吗

import numpy as np
T = np.random.randint(0,5,(3,2,3))
print(T)
print(T[0,0])
print(T[0,0].sum())
T[0,0] = T[0,0]/T[0,0].sum()
print(T)
我得到的输出:

[[[4 1 3]
  [1 4 4]]

 [[0 0 4]
  [2 2 2]]

 [[2 4 2]
  [2 1 4]]]
[4 1 3]
8
[0.5   0.125 0.375]
[[[0 0 0]
  [1 4 4]]

 [[0 0 4]
  [2 2 2]]

 [[2 4 2]
  [2 1 4]]]
我预期的产出:

[[[4 1 3]
  [1 4 4]]

 [[0 0 4]
  [2 2 2]]

 [[2 4 2]
  [2 1 4]]]
[4 1 3]
8
[0.5   0.125 0.375]
[[[0.5   0.125 0.375]
  [1 4 4]]

 [[0 0 4]
  [2 2 2]]

 [[2 4 2]
  [2 1 4]]]

任何帮助都将不胜感激。谢谢

您的数组是
int
(调用
randint
)类型,您尝试将
float
赋值给它,它将把数字四舍五入到数组中的
int
。如果要将值保持为
float
,请将数组也转换为
float

T = T.astype(np.float)
T[0,0] = T[0,0]/T[0,0].sum()
print(T)
该示例有所不同,因为它是随机创建的,但为您提供了IDE:

[[[0.   0.75 0.25]
  [1.   4.   0.  ]]

 [[1.   4.   0.  ]
  [1.   3.   1.  ]]

 [[3.   2.   1.  ]
  [4.   0.   2.  ]]]

您的数组是
int
(调用
randint
)类型,您尝试将
float
分配给它,它将把数字四舍五入到数组中的
int
。如果要将值保持为
float
,请将数组也转换为
float

T = T.astype(np.float)
T[0,0] = T[0,0]/T[0,0].sum()
print(T)
该示例有所不同,因为它是随机创建的,但为您提供了IDE:

[[[0.   0.75 0.25]
  [1.   4.   0.  ]]

 [[1.   4.   0.  ]
  [1.   3.   1.  ]]

 [[3.   2.   1.  ]
  [4.   0.   2.  ]]]

你如何证明整数数组中的那行浮点值是正确的呢?现在感觉像个白痴,我猜这是凌晨编码的结果。谢谢你让我的生活恢复了理智。你如何证明整数数组中的那行浮点值是正确的呢?现在感觉像个白痴,我猜这是凌晨编码的结果。谢谢你让我的生活恢复了理智。