日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】数组索引到底怎么整?

發布時間:2025/3/15 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】数组索引到底怎么整? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


本文主要探索如何在python中獲得一個數組里的指定行和列(子數組)。

【生成數組】

我們要獲得子數組,首先得生成一個數組,這里調用python里的numpy庫,生成一個5行3列的順序順組。

import numpy as np a = np.arange(15).reshape((5, 3))

結果如下圖:

【獲得子數組索引】

比如我們要取出 a 數組中的第2,4行和第1,2列生成數組 b ,數組 b 如下圖所示:

由于python中數組的索引是從0開始的,那么此時我們的行索引就是[1,3],列索引就是[0,1]。

【使用索引取數據】

如果直接像matlab一樣,行列一起索引,得到的結果有點意外。如下圖所示:

所以,我們行和列分開取數據

b = a[:,[0,1]] b = b[[1,3],:]

結果如下圖:

這里就是先把第1,2列取出來生成新數組,然后在新數組里取出2,4行。當然行列取出的順序可以更換。

【BUG】

以上其實還是很簡單的,如果使用過matlab,可以說的很好理解的,但是就是這個python數組索引,我居然搞了兩天,時刻懷念matlab。

大家注意,上面這些是在命令行里執行的,如果放到代碼中,可能會出現以下問題:

IndexError: too many indices for array
TypeError: list indices must be integers or slices, not tuple
TypeError: only size-1 arrays can be converted to Python scalars

簡直讓你分分鐘崩潰,就是個數組索引,python怎么這么會玩?

【DEBUG】

1、首先注意我們是從數組 a 里獲得子數組 b ,所以如果你 a 的格式(type)是列表(list)的話,你需要轉成數組

a= np.array(a)

2、行索引和列索引的格式是列表,而不是數組,轉換函數如下:

Index = Index.tolist();

3、如果上面兩個格式對了,但是還是報錯的話,你需要考慮一下,你代碼中類(class)里的對象(object)里的數據成員調用問題
首先,我們在方法__init__中定義了,很多數據成員,如self.feats = []。

然后,如果你在其他方法中要調用它的時候,又重新對他初始化,如上圖:

feats = feats + 2

再對其進行運算時,可能就報錯了。

所以,在調用這些數據時,全部從類中導出,比如

self.feats = self.feats + 2

這樣就避免了很多問題~

猜你喜歡:👇🏻
?【Python】查找目標值在列表中的索引序號
?【Python】選取二維列表的第一列
?【Matlab】矩陣中選取任意子矩陣

總結

以上是生活随笔為你收集整理的【Python】数组索引到底怎么整?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。