亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

numpy 數組切片索引

numpy 數組切片索引

慕村225694 2022-07-12 18:06:38
import numpy as np a=np.array([ [1,2,3],[4,5,6],[7,8,9]])如何獲得第零個索引列?預期輸出[[1],[2],[3]] a[...,0]給出一維數組。也許下一個問題回答了這個問題。如何獲得最后兩列a?a[...,1:2]僅給出第二列,a[...,2:3]給出最后 2 列,但a[...,3]維度無效。那么它是怎樣工作的?順便說一句,operator...和:有相同的含義嗎?a[...,0]并a[:,0]給出相同的輸出。有人可以在這里發表評論嗎?
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

numpy索引建立在python列表約定之上,但擴展到多維和多元素索引。它功能強大,但復雜,但遲早您應該閱讀完整的indexing文檔,該文檔區分“基本”和“高級”索引。


與rangeand一樣arange,切片索引具有“打開”停止值


In [111]: a = np.arange(1,10).reshape(3,3)                                                       

In [112]: a                                                                                      

Out[112]: 

array([[1, 2, 3],

       [4, 5, 6],

       [7, 8, 9]])

使用標量進行索引會減少維度,無論在哪里:


In [113]: a[1,:]                                                                                 

Out[113]: array([4, 5, 6])

In [114]: a[:,1]                                                                                 

Out[114]: array([2, 5, 8])

這也意味著a[1,1]回報5,而不是np.array([[5]])。


使用切片索引會保留維度:


In [115]: a[1:2,:]                                                                               

Out[115]: array([[4, 5, 6]])

使用列表或數組進行索引也是如此(盡管這會產生 a copy,而不是 a view):


In [116]: a[[1],:]                                                                               

Out[116]: array([[4, 5, 6]])

...是一個廣義的:- 使用盡可能多的需要。


In [117]: a[...,[1]]                                                                             

Out[117]: 

array([[2],

       [5],

       [8]])

您可以調整尺寸newaxis或重塑:


In [118]: a[:,1,np.newaxis]                                                                      

Out[118]: 

array([[2],

       [5],

       [8]])

請注意,尾隨:是自動的。 a[1]是一樣的a[1,:]。但主要的必須是明確的。


列表索引還刪除了“維度/嵌套層”


In [119]: alist = [[1,2,3],[4,5,6]]                                                              

In [120]: alist[0]                                                                               

Out[120]: [1, 2, 3]

In [121]: alist[0][0]                                                                            

Out[121]: 1

In [122]: [l[0] for l in alist]     # a column equivalent                                                                  

Out[122]: [1, 4]


查看完整回答
反對 回復 2022-07-12
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

import numpy as np

a=np.array([ [1,2,3],[4,5,6],[7,8,9]])


a[:,0] # first colomn

>>> array([1, 4, 7]) 

a[0,:] # first row

>>> array([1, 2, 3])

a[:,0:2] # first two columns

>>> array([[1, 2],

       [4, 5],

       [7, 8]])

a[0:2,:] # first two rows

>>> array([[1, 2, 3],

       [4, 5, 6]])


查看完整回答
反對 回復 2022-07-12
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號