大多数Pythonic(高效)方法创建数组以用值填充它

时间:2017-07-19 12:36:07

标签: python arrays

我的问题很简单:在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 

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

1 个答案:

答案 0 :(得分:1)

您可以使用调整大小:

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])

这是有效的,因为它主要适用于小数组,定义每个列,然后执行仅一个操作,以创建更大的数组。