【问题标题】:Specifying Elements In A Numpy Array在 Numpy 数组中指定元素
【发布时间】:2014-01-16 01:46:45
【问题描述】:

我想创建一个 numpy 数组,它采用 [0,10] 范围内的值,每个元素之间的除法为 0.1。我该怎么做呢?希望我的要求足够明确。

【问题讨论】:

    标签: python-2.7 numpy spyder


    【解决方案1】:

    除了@agconti 答案之外,您还可以使用所谓的 linspace

    代码:

    import numpy
    
    a = numpy.linspace(0, 10, num = 101)  # num -> number of elements
    print a
    

    输出:

    [  0.    0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9   1.    1.1
    1.2   1.3   1.4   1.5   1.6   1.7   1.8   1.9   2.    2.1   2.2   2.3
    2.4   2.5   2.6   2.7   2.8   2.9   3.    3.1   3.2   3.3   3.4   3.5
    3.6   3.7   3.8   3.9   4.    4.1   4.2   4.3   4.4   4.5   4.6   4.7
    4.8   4.9   5.    5.1   5.2   5.3   5.4   5.5   5.6   5.7   5.8   5.9
    6.    6.1   6.2   6.3   6.4   6.5   6.6   6.7   6.8   6.9   7.    7.1
    7.2   7.3   7.4   7.5   7.6   7.7   7.8   7.9   8.    8.1   8.2   8.3
    8.4   8.5   8.6   8.7   8.8   8.9   9.    9.1   9.2   9.3   9.4   9.5
    9.6   9.7   9.8   9.9  10. ]
    

    【讨论】:

    • 我最初考虑使用它,但认为它在概念上更难,因为您必须知道将数组隔开的元素数量。但我很高兴您将其包括在内,+1。
    • 这取决于您使用它的目的。你想用数组做什么?
    • 另外,这对于非 python 用户可能更具语义:np.linspace(0,1,100,endpoint=False)
    【解决方案2】:

    使用numpy.arange

    来自文档:

    numpy.arange([start], stop[, step], dtype=None) 返回均匀分布 给定区间内的值。

    例子:

    >>> np.arange(3)
    array([0, 1, 2])
    >>> np.arange(3.0)
    array([ 0.,  1.,  2.])
    >>> np.arange(3,7)
    array([3, 4, 5, 6])
    >>> np.arange(3,7,2)
    array([3, 5])
    

    为你:

     np.arange(0,10,0.1)
    

    【讨论】:

    • 反对的选民愿意发表评论吗?我的回答是有效的。
    • 好吧,查看 arange 文档“当使用非整数步长时,例如 0.1,结果通常会不一致。对于这些情况,最好使用 linspace。”
    • 显然我的回答是有效的。仍然会生成正确的结果。正如我在@christians 的回答中评论的那样,我认为这在概念上可能比 OP 的行空间更容易
    • 简单地说,不。这个答案不能一概而论。如果你概括它,你可能会得到损坏的结果。而且它不如 linspace 精确(虽然更快)。所以不管它是否有效,我认为这是个坏建议。
    • np.arange() 是否产生一个 numpy 数组?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多