我的问题很简单:在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
编辑:我填写的内容并不像最有效的方法那样重要。
答案 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])
这是有效的,因为它主要适用于小数组,定义每个列,然后执行仅一个操作,以创建更大的数组。