【问题标题】:How do you call the element of position X in an numpy array?如何在 numpy 数组中调用位置 X 的元素?
【发布时间】:2015-10-13 10:30:16
【问题描述】:
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

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    我会简单地用这种方式生成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
    

    【讨论】:

    • 简洁优雅。我喜欢它。
    【解决方案2】:

    np.append(S, random_int)random_int 附加到数组S副本。您需要在 for 循环中使用 S = np.append(S, random_int)

    示例

    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
    

    【讨论】:

      【解决方案3】:

      首先,S = np.array(l) 不会生成长度为 l 的数组,而是生成长度为 1 的数组,其唯一条目是 l。 所以你可以用S = np.zeros(l) 替换这一行(创建一个长度为 l 的数组,全是零。 然后,在你的 for 循环中,你必须这样做:

      for i in range l:
         S[i] = randint(0, 1)
      

      这只是为了指出你的错误。正如@Fabio 所说,您可以在一行中完成此操作。

      【讨论】:

      • 谢谢,我刚开始使用 numpy,所以这样的事情很容易欺骗我。
      猜你喜欢
      • 2016-01-25
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多