Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在NumPy中声明和填充数组?_Python_Arrays_Numpy - Fatal编程技术网

Python 如何在NumPy中声明和填充数组?

Python 如何在NumPy中声明和填充数组?,python,arrays,numpy,Python,Arrays,Numpy,我需要在Python中创建一个空数组,并在循环方法中填充它 data1=np.array([ra,dec,[]) 这是我的。ra和dec部分来自我导入的另一个阵列。我遇到的问题是填充其他列。 例子。假设要填充第三列,我将执行以下操作: for i in range (0,56): data1[i,3] = 32 我得到的错误是: IndexError:前面提到的第二行的索引无效 代码示例 此外,当我检查我创建的数组的形状时,它将出现在(3,)。我已经输入的数据是两列56行的数据 我在这

我需要在Python中创建一个空数组,并在循环方法中填充它

data1=np.array([ra,dec,[])

这是我的。ra和dec部分来自我导入的另一个阵列。我遇到的问题是填充其他列。 例子。假设要填充第三列,我将执行以下操作:

for i in range (0,56):
    data1[i,3] = 32
我得到的错误是:

IndexError:前面提到的第二行的索引无效 代码示例

此外,当我检查我创建的数组的形状时,它将出现在
(3,)
。我已经输入的数据是两列56行的数据

我在这里搞砸了?我应该转置数组吗

你可以做:

data1 = np.zeros((56,4))
获取56 x 4的数组。如果您不想以
0
开始数组,可以使用
np.ones
np.empty
np.ones((56,4))*np.nan

然后,在大多数情况下,如果出于性能原因不需要,最好不要使用python循环。 因此,作为一个示例,这将执行您的循环:

data[:, 3] = 32

为您的问题提供单行解决方案;但是为了提高效率,最好先分配一个空数组,然后在相关部分中进行复制,这样可以避免构建虚拟列表。

假设ra和dec是向量(1-d):


没有人提到的一件事是,在Python中,索引从0开始,而不是从1开始

这意味着,如果要查看数组的第三列,实际上应该寻址
[:,2]
,而不是
[:,3]


祝你好运

我需要为每个元素输入一个唯一的值。如果应该输入的是一个iterable
I
中的值,那么我可以使用类似于data1[2,3]=32的东西来输入该值吗?您只需执行
data1[:,3]=I
data1 = np.array([ra,dec,[32]*len(ra)])
data1 = np.concatenate([ra[:, None], dec[:, None], np.zeros((len(ra), 1))+32], axis=1)

Or 

data1 = np.empty((len(ra), 3))
data[:, 0] = ra
data[:, 1] = dec
data[:, 2] = 32