python - 如何在numpy数组的XYZ位置插入csv文件中的浮点值
问题描述
我需要将 CSV 文件中的 XYZ(int) 处的 Value(Float) 插入到world = numpy.zeros((360,360,360))
CSV 文件中的行示例:
Value X Y Z
4.5396 159 159 1
4.5905 182 160 3
etc
我在 CSV 文件中有大约 16000 行,尽管很多都是重复的。
我的主要问题是我需要使用 Integers(XYZ) 将 Float(Value) 插入到 Numpy 中,它拒绝同时处理两者,我也尝试过使用 Pandas 但同样的问题。
在这里,我已将其全部转换为整数,这是我使其正常工作的唯一方法。
world = numpy.zeros((360,360,360))
data = numpy.genfromtxt('Myfile.csv', delimiter=',',skip_header=1)
for Value,X, Y, Z in data.astype(int):
world[X, Y, Z] = Value
它应该看起来像这样
world[159,159,1] = 4.5369
world[182,160,3] = 4.5945
但我只能得到这个
world[159,159,1] = 4
world[182,160,3] = 4
其他一切都会导致各种错误
解决方案
改为这样做:
world = numpy.zeros((360,360,360))
data = numpy.genfromtxt('Myfile.csv', delimiter=',', skip_header=1)
X, Y, Z = data[:, 1:].astype(int).T
world[X, Y, Z] = data[:, 0]
或者直接用正确的类型读取文本数据:
world = numpy.zeros((360,360,360))
data = numpy.genfromtxt('Myfile.csv', delimiter=',', skip_header=1,
dtype=[('Value', float), ('X', int), ('Y', int), ('Z', int)])
world[data['X'], data['Y'], data['Z']] = data['Value']
推荐阅读
- javascript - 如何使用 axios 将图像和文本放入 api
- c - 如何使用 FFMPEG 加速时间线清理?
- spring - Feign 将 GET 方法识别为 POST
- regex - preg 用多个大括号替换
- windows - 将 UDP 数据包转发到外部网络
- java - 如何更改 Object 实例并在同一方法中返回值?
- azure-aks - 错误:为处于 CREATED 状态的 pod 分配身份失败 - AKS AAD-Pod 身份
- javascript - 获取固定 div 容器内元素的绝对位置
- javascript - Django admin - 使图像出现在 django 管理列表视图上
- r - R - 从单词列创建句子 ID