【问题标题】:The meaning of the comma inside X[:,0]X[:,0] 中逗号的含义
【发布时间】:2017-04-23 21:17:50
【问题描述】:

如果X是一个数组,那么X[:,0]是什么意思?其实我也不是第一次看到这样的东西了,也让我很困惑,但是我看不出它的含义是什么?谁能给我看一个例子?对于这个逗号问题,我们将不胜感激。

请看文件https://github.com/lazyprogrammer/machine_learning_examples/blob/master/ann_class/forwardprop.py

提前致谢!

【问题讨论】:

  • 这是熊猫Dataframe吗?请提供更多代码示例。目前X 有点神秘。
  • 然后是一个numpy数组,这里选择第一列数据。
  • 逗号基本上是维度之间的分隔符,其中: 类似于通配符。但是 numpy-docs 会更好地解释这一点!

标签: python comma


【解决方案1】:

砖块内的逗号将行与要从数组中滑出的列分开。

x[row,column]

您可以在行和列值之前或之后放置“:”。在值之前表示“unitl”,在值之后表示“来自”。

例如你有:

x: array([[5.1, 3.5, 1.4, 0.2],
          [4.9, 3. , 1.4, 0.2],
          [4.7, 3.2, 1.3, 0.2],
          [4.6, 3.1, 1.5, 0.2],
          [5. , 3.6, 1.4, 0.2],
          [5.4, 3.9, 1.7, 0.4],
          [4.6, 3.4, 1.4, 0.3],
          [5. , 3.4, 1.5, 0.2],
          [4.4, 2.9, 1.4, 0.2]])

x[:,:] would mean u want every row and every column.

x[3,3] would mean u want the 3 row and the 3 column value

x[:3,:3] would mean u want the rows and columns until 3

x[:, 3] would mean u want the 3 column and every row

【讨论】:

    【解决方案2】:
    >>> x = [1, 2, 3]
    >>> x[:, 0] Traceback (most recent call last):
        File "<stdin>", line 1, in <module>  TypeError: list indices must be integers, not tuple
    

    如果你看到了,那么变量不是一个列表,而是别的东西。也许是一个 numpy 数组。

    【讨论】:

    • 抱歉,这并没有回答我的问题。
    【解决方案3】:

    我正在创建一个示例矩阵:

    import numpy as np
    np.random.seed(0)  
    F = np.random.randint(2,5, size=(3, 4), dtype = 'int32' )
    F
    

    查询切割矩阵行:

    F[0:2]
    

    查询切割矩阵列:

    F[:,2]
    

    【讨论】:

      【解决方案4】:

      直截了当,正如有人提到的那样,它是 X[rows, columns],但你可能会问,冒号在 "X[:,0]" 中表示 :,这意味着你说的是全部列出。

      所以X[:,0] - > 会说列出所有行中的元素,因为它只是冒号: 出现在第一列,因此整个矩阵的列被打印出来。维度是[no_of_rows * 1]

      同样,X[:,1] -> 这将列出所有行中的第二列。

      希望这能澄清你

      【讨论】:

        【解决方案5】:

        很清楚。看看这个!

        加载一些数据

        from sklearn import datasets
        iris = datasets.load_iris()
        
        samples = iris.data
        

        探索二维数组的前 10 个元素

        samples[:10]
        array([[5.1, 3.5, 1.4, 0.2],
               [4.9, 3. , 1.4, 0.2],
               [4.7, 3.2, 1.3, 0.2],
               [4.6, 3.1, 1.5, 0.2],
               [5. , 3.6, 1.4, 0.2],
               [5.4, 3.9, 1.7, 0.4],
               [4.6, 3.4, 1.4, 0.3],
               [5. , 3.4, 1.5, 0.2],
               [4.4, 2.9, 1.4, 0.2],
               [4.9, 3.1, 1.5, 0.1]])
        

        测试我们的注解

        x = samples[:,0]
        x[:10]
        array([5.1, 4.9, 4.7, 4.6, 5. , 5.4, 4.6, 5. , 4.4, 4.9])
        
        y = samples[:,1]
        y[:10]
        array([3.5, 3. , 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1])
        

        附: samples 的长度是 150,为了清楚起见,我把它剪成了 10。

        【讨论】:

          猜你喜欢
          • 2012-02-08
          • 1970-01-01
          • 2013-05-20
          • 1970-01-01
          • 2017-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-31
          相关资源
          最近更新 更多