【问题标题】:how to slice numpy array with unknown number of column?如何切片具有未知列数的numpy数组?
【发布时间】:2017-09-07 23:17:14
【问题描述】:

我想将 2d numpy 数组切片为我选择的索引。比如我有这个one.csv

111,222,333,444
1,2,3,4

我想把它切成例如

XX = array([[ 111.,  222.,  333.],
            [   1.,    2.,    3.]])

YY = array([ 444.,    4.])

假设我不知道有多少索引,所以对于XXYY 我知道了

import numpy

data = numpy.loadtxt('one.csv', delimiter=",")


XX = data[:,0:len(data)]
YY = data[:,len(data)]

XXYY 的结果如下

# XX
array([[ 111.,  222.],
       [   1.,    2.]])

# YY
array([ 333.,    3.])

我该如何解决这个问题?除了使用len(data),还有其他选择吗?

感谢您的帮助。

【问题讨论】:

  • 但这里len(data)行数
  • 你可以从.shape属性中获取列数:data.shape[1]会给你读取的列数
  • @WillemVanOnsem 是的。我刚刚意识到len(data) 是行数。谢谢您的回答。 @EdChum 谢谢你的回答。这对我来说是一个很好的参考。但是对于这种特定情况,我想输入文件,从第一列到倒数第二列进行操作,而不必查找读取的列数。再次感谢你。 =)

标签: python arrays csv numpy numpy-ndarray


【解决方案1】:

对于您的具体示例,请使用:

# all rows, and all columns but the last
XX = data[:, 0:-1]

# all rows and only the last column
YY = data[:, -1]

但一般情况下,您可以使用data.shape 获得数组data 的形状,并根据需要对列进行切片。

【讨论】:

    猜你喜欢
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2020-12-11
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多