如何切片列数未知的numpy数组?
how to slice numpy array with unknown number of column?
我想将 2d numpy 数组切片到我选择的索引。例如,我有这个 one.csv
111,222,333,444
1,2,3,4
我想把它切成例如
XX = array([[ 111., 222., 333.],
[ 1., 2., 3.]])
YY = array([ 444., 4.])
假设我不知道有多少索引,所以对于 XX
和 YY
我做了
import numpy
data = numpy.loadtxt('one.csv', delimiter=",")
XX = data[:,0:len(data)]
YY = data[:,len(data)]
XX
和 YY
的结果如下
# XX
array([[ 111., 222.],
[ 1., 2.]])
# YY
array([ 333., 3.])
我该如何解决这个问题?除了使用 len(data)
之外还有其他选择吗?
感谢您的帮助。
对于你的具体例子,使用这个:
# 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
的形状,并根据需要对列进行切片。
我想将 2d numpy 数组切片到我选择的索引。例如,我有这个 one.csv
111,222,333,444
1,2,3,4
我想把它切成例如
XX = array([[ 111., 222., 333.],
[ 1., 2., 3.]])
YY = array([ 444., 4.])
假设我不知道有多少索引,所以对于 XX
和 YY
我做了
import numpy
data = numpy.loadtxt('one.csv', delimiter=",")
XX = data[:,0:len(data)]
YY = data[:,len(data)]
XX
和 YY
的结果如下
# XX
array([[ 111., 222.],
[ 1., 2.]])
# YY
array([ 333., 3.])
我该如何解决这个问题?除了使用 len(data)
之外还有其他选择吗?
感谢您的帮助。
对于你的具体例子,使用这个:
# 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
的形状,并根据需要对列进行切片。