2017-04-12 28 views
1

我想分割2d numpy數組到我選擇的索引。例如,我有這樣的one.csv如何切片列數未知的numpy數組?

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)之外,還有其他選擇嗎?

謝謝你的幫助。

+0

但是這裏'len(data)'是行數**。 –

+0

您可以從'.shape'屬性獲得列數:'data.shape [1]'會給你讀取的列數 – EdChum

+0

@WillemVanOnsem yes。我剛剛意識到'len(data)'是行數。謝謝您的回答。 @EdChum謝謝你的回答。這對我很有借鑑意義。但是對於這種特殊情況,我想輸入文件,從第1行到最後一列進行操作,而不必查找讀取的列數。再次感謝你。 =) – Ling

回答

4

爲了您的具體的例子,使用此:

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

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

但在一般情況下,你可以得到陣列datadata.shape的形狀,並根據需要切片列。

+0

謝謝你的例子。它正在工作! – Ling