使用Numpy生成并填充二维数组

时间:2017-04-20 03:00:27

标签: python arrays csv numpy multidimensional-array

我想用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=",")

不幸的是它不起作用,我的语法非常笨拙,可能[,]括号是问题所在。如果有人能解决我的片段,我会非常感激。

1 个答案:

答案 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