Numpy ndarray 赋值问题
Numpy ndarray assignment issue
我无法弄清楚这段代码有什么问题。您能帮我了解问题出在哪里以及如何解决吗?
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)
示例不同,因为它是随机创建的,但是给你的ides:
[[[0. 0.75 0.25]
[1. 4. 0. ]]
[[1. 4. 0. ]
[1. 3. 1. ]]
[[3. 2. 1. ]
[4. 0. 2. ]]]
我无法弄清楚这段代码有什么问题。您能帮我了解问题出在哪里以及如何解决吗?
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)
示例不同,因为它是随机创建的,但是给你的ides:
[[[0. 0.75 0.25]
[1. 4. 0. ]]
[[1. 4. 0. ]
[1. 3. 1. ]]
[[3. 2. 1. ]
[4. 0. 2. ]]]