import numpy as np
S = np.array(l)
for i in range(1, l):
random_int = randint(0, 1)
np.append(S, random_int)
我创建了一个大小为l的numpy数组,并用零和一个填充它。假设我想打印数组的第三个元素。我怎么做?
如果我输入
print(S[2])
我收到以下错误:
IndexError: too many indices for array
答案 0 :(得分:2)
我只想以这种方式生成0到1之间的L个随机数:
L = 10
S = np.random.random_integers(0,1,L)
print S
print S[2]
返回:
[1 0 0 1 0 0 1 1 0 1]
0
答案 1 :(得分:1)
np.append(S, random_int)
将random_int
附加到数组S
的副本。您需要在S = np.append(S, random_int)
循环中使用for
。
示例强>
import numpy as np
from random import randint
l = 5
S = np.array(l)
for i in range(1, l):
random_int = randint(0, 1)
S = np.append(S, random_int)
print(S)
print(S[2])
<强>输出强>
[5 1 1 0 1]
1
答案 2 :(得分:1)
首先,S = np.array(l)
不会产生长度为l的数组,而是长度为1的数组,其唯一的条目是l。
所以你可以用S = np.zeros(l)
替换这一行(创建一个长度为l的数组为零。
然后,在你的for循环中,你必须这样做:
for i in range l:
S[i] = randint(0, 1)
这只是为了指出你的错误。正如@Fabio所说,你可以在一行中做到这一点。