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

2024-06-06 10:43:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要用Python创建一个空数组并用循环方法填充它。

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

这是我有的。ra和dec部分来自我导入的另一个数组。我遇到的麻烦是把其他栏目都填上。 例子。假设填充第三列,我这样做:

for i in range (0,56):
    data1[i,3] = 32

我得到的错误是:

IndexError: invalid index for the second line in the aforementioned code sample.

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

那我在这搞什么?我应该调换数组吗?


Tags: the数据方法infor错误nprange
3条回答

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

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

祝你好运!

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

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

你可以:

data1 = np.zeros((56,4))

得到56×4的数组。如果不想用0启动数组,可以使用np.onesnp.emptynp.ones((56, 4)) * np.nan

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

data[:, 3] = 32

相关问题 更多 >