numpy - Numpy ndarray分配问题
问题描述
我无法弄清楚这段代码有什么问题。您能否帮助我了解出了什么问题以及如何解决?
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. ]]]
推荐阅读
- node.js - 如何获取从 Cloud Functions 上传到 Firebase 存储的文件的 base64?
- javascript - “NavigationProp”类型上不存在属性“pop”
, 字符串, NavigationState, {}, {}>' - angular - Angular中的Materialize-css Sticky Footer
- azure - 如何使用 azure tfs 在 CI/CD 管道中配置应用程序设置
- python - Pandas Dataframes 的高效循环
- php - 我是否需要翻译来自 wordpress 的信息,例如作者姓名、帖子标题、帖子内容等,以便准备好翻译 wp 主题
- c++ - 如何从 strftime 捕获格式错误作为异常?
- c# - C# EF 数组在 LINQ to DB 中相交
- neo4j - Cypher 查询创建新节点而不是与现有节点建立关系
- javascript - 变量在javascript中存储两个值