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