【问题标题】:Meaning of X = X[:, 1] in PythonX = X[:, 1] 在 Python 中的含义
【发布时间】:2016-02-03 04:01:33
【问题描述】:

我正在研究这个 python 代码的 sn-p。最后一行的X = X[:, 1] 是什么意思?

def linreg(X,Y):
    # Running the linear regression
    X = sm.add_constant(X)
    model = regression.linear_model.OLS(Y, X).fit()
    a = model.params[0]
    b = model.params[1]
    X = X[:, 1]

【问题讨论】:

    标签: python statistics


    【解决方案1】:
    x = np.random.rand(3,2)
    
    x
    Out[37]: 
    array([[ 0.03196827,  0.50048646],
           [ 0.85928802,  0.50081615],
           [ 0.11140678,  0.88828011]])
    
    x = x[:,1]
    
    x
    Out[39]: array([ 0.50048646,  0.50081615,  0.88828011])
    

    那么该行所做的就是sliced 数组,获取所有行 (:) 但保留第二列 (1)

    【讨论】:

    • 没问题,很高兴我能帮上忙。
    • 您的链接不正确(它指向 Python 2.3 文档)。请改用numpy 文档中的this one
    • @MattDMo 更新了,我试图找到与 python 相关的东西。
    • Python 文档是 here,并从 numpy 文档链接。两者都是理解示例中发生的事情所必需的,因为 numpy 语法与标准 Python 不同。
    • 所以重要的一点是,这是 Python 的 numpy 扩展,而不是标准的 Python(2 或 3)对吧?
    【解决方案2】:

    你应该知道的事情

    您需要搜索的词是 slice。 x[start:end:step] 是完整的形式, 这里我们可以省略使用默认值:start 默认为 0,end 默认为列表的长度,step 默认为 1。 因此 x[:] 的含义与 x[0:len(x):1]

    相同

    【讨论】:

      【解决方案3】:

      这就像您指定轴一样。将起始列视为 0,然后再考虑 1,2,依此类推。

      语法是x[row_index,column_index]

      您还可以根据需要在 row_index 中指定行值范围,例如:1:13 提取前 13 行以及列中指定的任何内容

      【讨论】:

      • 因为索引从 0 开始,1:13 只提取 12 行,从第二个元素开始。要提取前 13 行,您应该使用表达式 0:13。
      【解决方案4】:

      x[:,1] 这是二维切片,这里是 x[row_index, column_index]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-19
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-19
        • 1970-01-01
        • 2015-10-25
        相关资源
        最近更新 更多