1. 程式人生 > >(轉)Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

(轉)Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

      Python中對於陣列和列表進行切片操作是很頻繁的,當然對於切片的操作可供我們直接使用的函式也是很遍歷了,我們今天主要簡單總結一下常用集中索引化方式,希望對大家有所幫助吧。    

      對於列表的切片比較簡單,在我之前的部落格裡面有詳細的講解,需要的話可以去看看,這裡就不再詳細說了,今天主要是講解對於Python中Array物件的操作,我們平時使用比較頻繁的一般也就是三維的矩陣了,再高維度的處理方式是相同的,這裡我們只講解三維和二維的使用。

  • 對於二維陣列:

對於X[:,0]; 是取二維陣列中第一維的所有資料

對於X[:,1] 是取二維陣列中第二維的所有資料

對於X[:,m:n] 是取二維陣列中第m維到第n-1維的所有資料

  • 對於三維陣列:

對於X[:,:,0] 是取三維矩陣中第一維的所有資料

對於X[:,:,1] 是取三維矩陣中第二維的所有資料

對於X[:,:,m:n] 是取三維矩陣中第m維到第n-1維的所有資料  

  這樣的講解可能還是有點抽象,下面我們用具體的例項來講解,相信會更加容易理解,具體如下: 

#!usr/bin/env python
#encoding:utf-8
from __future__ import division
 
'''
__Author__:沂水寒城
學習Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
'''
 
import numpy as np
 
def simple_test():
    '''
    簡單的小實驗
    '''
    data_list=[[1,2,3],[1,2,1],[3,4,5],[4,5,6],[5,6,7],[6,7,8],[6,7,9],[0,4,7],[4,6,0],[2,9,1],[5,8,7],[9,7,8],[3,7,9]]
    # data_list.toarray()
    data_list=np.array(data_list)
    print 'X[:,0]結果輸出為:'
    print data_list[:,0]  
    print 'X[:,1]結果輸出為:'
    print data_list[:,1]
    print 'X[:,m:n]結果輸出為:'
    print data_list[:,0:1]
    data_list=[[[1,2],[1,0],[3,4],[7,9],[4,0]],[[1,4],[1,5],[3,6],[8,9],[5,0]],[[8,2],[1,8],[3,5],[7,3],[4,6]],
               [[1,1],[1,2],[3,5],[7,6],[7,8]],[[9,2],[1,3],[3,5],[7,67],[4,4]],[[8,2],[1,9],[3,43],[7,3],[43,0]],
               [[1,22],[1,2],[3,42],[7,29],[4,20]],[[1,5],[1,20],[3,24],[17,9],[4,10]],[[11,2],[1,110],[3,14],[7,4],[4,2]]]
    data_list=np.array(data_list)
    print 'X[:,:,0]結果輸出為:'
    print data_list[:,:,0] 
    print 'X[:,:,1]結果輸出為:'
    print data_list[:,:,1]
    print 'X[:,:,m:n]結果輸出為:'
    print data_list[:,:,0:1]
 
 
if __name__ == '__main__':
    simple_test()

結果如下:

X[:,0]結果輸出為:
[1 1 3 4 5 6 6 0 4 2 5 9 3]
X[:,1]結果輸出為:
[2 2 4 5 6 7 7 4 6 9 8 7 7]
X[:,m:n]結果輸出為:
[[1]
 [1]
 [3]
 [4]
 [5]
 [6]
 [6]
 [0]
 [4]
 [2]
 [5]
 [9]
 [3]]
X[:,:,0]結果輸出為:
[[ 1  1  3  7  4]
 [ 1  1  3  8  5]
 [ 8  1  3  7  4]
 [ 1  1  3  7  7]
 [ 9  1  3  7  4]
 [ 8  1  3  7 43]
 [ 1  1  3  7  4]
 [ 1  1  3 17  4]
 [11  1  3  7  4]]
X[:,:,1]結果輸出為:
[[  2   0   4   9   0]
 [  4   5   6   9   0]
 [  2   8   5   3   6]
 [  1   2   5   6   8]
 [  2   3   5  67   4]
 [  2   9  43   3   0]
 [ 22   2  42  29  20]
 [  5  20  24   9  10]
 [  2 110  14   4   2]]
X[:,:,m:n]結果輸出為:
[[[ 1]
  [ 1]
  [ 3]
  [ 7]
  [ 4]]
 
 [[ 1]
  [ 1]
  [ 3]
  [ 8]
  [ 5]]
 
 [[ 8]
  [ 1]
  [ 3]
  [ 7]
  [ 4]]
 
 [[ 1]
  [ 1]
  [ 3]
  [ 7]
  [ 7]]
 
 [[ 9]
  [ 1]
  [ 3]
  [ 7]
  [ 4]]
 
 [[ 8]
  [ 1]
  [ 3]
  [ 7]
  [43]]
 
 [[ 1]
  [ 1]
  [ 3]
  [ 7]
  [ 4]]
 
 [[ 1]
  [ 1]
  [ 3]
  [17]
  [ 4]]
 
 [[11]
  [ 1]
  [ 3]
  [ 7]
  [ 4]]]
[Finished in 0.6s]