我想用NumPy生成一个二维数组,迭代一些变量几次,并用2个float
数据填充二维数组,这些数据在for
迭代内计算。然后将其导出到.csv
从技术上讲,我想这样做:
max_array=8000
ARRAY=numpy.zeros( [max_array*2] , dtype=float)
ARRAY=numpy.arange(max_array*2).reshape((max_array,2))
for i in range(1,max_array):
######calculations here#######
array[i,i]=[data1,data2]
numpy.savetxt("output.csv", numpy.asarray(ARRAY), delimiter=",")
不幸的是它不起作用,我的语法非常笨拙,可能[,]括号是问题所在。如果有人能解决我的片段,我会非常感激。
答案 0 :(得分:1)
import numpy as np
max_array = 4
ARRAY = np.arange(max_array*2).reshape((max_array,2))
您已创建了一个二维数组
>>> ARRAY
array([[0, 1],
[2, 3],
[4, 5],
[6, 7]])
>>>
ARRAY[i,i]
索引数组中的单个元素
>>> i = 0
>>> ARRAY[i,i]
0
>>> ARRAY[i,i] = 222
>>> ARRAY
array([[222, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7]])
如果要为行指定值:
>>> ARRAY[0] = 99, 99
>>> ARRAY
array([[99, 99],
[ 2, 3],
[ 4, 5],
[ 6, 7]])
或者
>>> ARRAY[2,:] = 66, 66
>>> ARRAY
array([[99, 99],
[ 2, 3],
[66, 66],
[ 6, 7]])
下标中的第二个值索引列
>>> ARRAY[:, 1]
array([99, 3, 66, 7])
>>> ARRAY[:, 1] = 0
>>> ARRAY
array([[99, 0],
[ 2, 0],
[66, 0],
[ 6, 0]])
>>>
ARRAY[i,i] = data1, data2
:尝试将两个东西分配给数组中的单个元素 - 这就是您收到错误的原因。
Numpy docs
Indexing, Slicing, Iterating
Indexing