Python 如何在numpy数组中的XYZ位置插入csv文件中的浮点值

Python 如何在numpy数组中的XYZ位置插入csv文件中的浮点值,python,csv,numpy,Python,Csv,Numpy,我需要在CSV文件的XYZ(int)处插入一个值(Float)到world=numpy.zeros((360360)) CSV文件中的行示例: Value X Y Z 4.5396 159 159 1 4.5905 182 160 3 etc 我在CSV文件中有大约16000行,尽管许多是重复的 我的主要问题是,我需要使用整数(XYZ)在Numpy中插入一个浮点(值),它拒绝同时处理这两个问题,我也尝试过使用Pandas,但同样的问题 在这里,我将它全部转换为整数,这是我使它工

我需要在CSV文件的XYZ(int)处插入一个值(Float)到
world=numpy.zeros((360360))

CSV文件中的行示例:

Value   X   Y   Z
4.5396  159 159 1
4.5905  182 160 3
etc
我在CSV文件中有大约16000行,尽管许多是重复的

我的主要问题是,我需要使用整数(XYZ)在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']
改为这样做:

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']