我的问题很简单:在Python中创建数组并逐列填充值的最有效(首选)方法是什么?

我想到的第一件事就是创建空数组(或填充零的数组)并根据列号逐步填充它。

import random
import numpy as np

values = np.zeros([10, 20])
# or values = np.empty([10,20])
for i in range(len(values.T)):
    if i == 0:
        values[:,i] = 1
    elif i < 10:
        values[:,i] = random.sample(range(1, 100), 10)
    else:
        values[:,i] =  values[:,i] - values[:,i - 1] * i


编辑:在这里我所填写的内容并不像最有效的方法那样重要。

最佳答案

您可以使用调整大小:

values = np.zeros([20])

for i in range(len(values)):
    if i == 0:
        values[i] = 1
    elif i < 10:
        values[i] = random.sample(range(1, 100), 1)
    else:
        values[i] = values[i] - values[i - 1] * i

values = np.resize(values, [10, 20])


这是有效的,因为它主要在定义每个列的小型数组上工作,然后仅执行一个操作即可创建更大的数组。

关于python - 最Pythonic(高效)的方法来创建数组以将其填充值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45190822/

10-12 12:56
查看更多