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