pythonlist索引獲取
㈠ python怎麼獲取list的某個元素的位置
幾種方式的回答:
1)
print('*'*15,'想找出裡面有重復數據的索引值','*'*15)
listA = [100, 94, 88, 82, 76, 70, 64, 58, 52, 46, 40, 34,76]
print('列表中第1次出現的位置 = ',listA.index(76))
2)
a_list = ['a','b','c','c','d','c']
find = 'c'
print('重復元素出現的位置索引分別是 = ',[i for i,v in enumerate(a_list) if v==find])
-----------------------------------------------------
3)### 求某個元素重復的索引值,函數方式表述如下:
a_list = ['a','b','c','c','d','c']
def unique_index(L,f):
"""L表示列表, i表示索引值,v表示values,f表示要查找的元素 """
return [i for (i,v) in enumerate(L) if v==f]
print('索引值 = ',unique_index(a_list,'c'))
運行結果:
索引值 = [2, 3, 5]
4)還缺一種,列出多個元素重復的索引值,以後再補充
......
㈡ python鍙栧垪琛ㄥ墠鍑犱釜鍏冪礌
鍦≒ython涓錛屼綘鍙浠ラ氳繃緔㈠紩鏉ヨ幏鍙栧垪琛ㄧ殑鍓嶅嚑涓鍏冪礌銆備互涓嬫槸涓浜涚ず渚嬶細
濡傛灉浣犳兂鑾峰彇鍒楄〃鐨勫墠3涓鍏冪礌錛
pythonmy_list = [1, 2, 3, 4, 5, 6]
first_three = my_list[:3]
print(first_three) # 杈撳嚭錛歔1, 2, 3]
濡傛灉浣犳兂鑾峰彇鍒楄〃鐨勫墠4涓鍏冪礌錛
pythonmy_list = [1, 2, 3, 4, 5, 6]
first_four = my_list[:4]
print(first_four) # 杈撳嚭錛歔1, 2, 3, 4]
浣犱篃鍙浠ヤ嬌鐢ㄥ垏鐗囷紙slicing錛夋潵鑾峰彇鍓嶅嚑涓鍏冪礌錛岃繖涓鏂規硶涓嶄粎閫傜敤浜庡垪琛錛岃繕閫傜敤浜庡瓧絎︿覆鍜屽叾浠栧彲榪浠e硅薄銆備緥濡傦紝浣犲彲浠ヤ嬌鐢ㄤ互涓嬩唬鐮佹潵鑾峰彇絎1鍒扮5涓鍏冪礌錛堝寘鎷絎5涓鍏冪礌錛夛細
pythonmy_list = [1, 2, 3, 4, 5, 6]
slice_list = my_list[1:6] # 娉ㄦ剰錛岃搗濮嬬儲寮曟槸0錛屾墍浠1浠h〃絎涓涓鍏冪礌
print(slice_list) # 杈撳嚭錛歔2, 3, 4, 5, 6]
璇鋒敞鎰忥紝Python涓鐨勭儲寮曟槸浠0寮濮嬬殑錛屾墍浠my_list[0]灝嗚繑鍥炲垪琛ㄧ殑絎涓涓鍏冪礌銆
涓嬮潰鏄涓涓紺轟緥浠g爜錛屽畠婕旂ず浜嗗備綍浣跨敤鍒囩墖鎿嶄綔絎︿粠鍒楄〃涓鎻愬彇鍓嶄笁涓鍏冪礌錛 ```python my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] first_three_elements = my_list[0:3] print(first_three_elements) ``` 杈撳嚭錛 ```python [1, 2, 3] ``` 鍦ㄨ繖涓紺轟緥涓錛屾垜浠瀹氫箟浜嗕竴涓鍚嶄負`my_list`鐨勫垪琛錛屽叾涓鍖呭惈涓浜涙暟瀛椼
鐒跺悗錛屾垜浠浣跨敤鍒囩墖鎿嶄綔絎`[0:3]`浠庡垪琛ㄤ腑鎻愬彇鍓嶄笁涓鍏冪礌錛屽苟灝嗙粨鏋滃瓨鍌ㄥ湪鍚嶄負`first_three_elements`鐨勬柊鍒楄〃涓銆傛渶鍚庯紝鎴戜滑浣跨敤`print()`鍑芥暟灝嗙粨鏋滄墦鍗板埌鎺у埗鍙頒笂銆
㈢ python怎麼獲取list的某個元素的位置
method1 全列表查詢元素位置
列表元素位置查找最基礎的方式就是全列表查詢,在python中使用index可對列表進行對應的操作,指定查找的元素內容即可。但注意返回的是查找到的首個元素索引
指令形式
index = namelist.index(索引內容)
㈣ python怎麼獲取列表元素的索引
#用enumerate函數,最好不要用index,因為列表有相同的元素的時候,index就傻冒了
fori,jinenumerate(('a','b','c')):
printi,j
0a
1b
2c
㈤ Python的pandas 數組如何得到索引值,如圖,我要得到ohio 的索引值,應該怎樣做
直接上實例:
df = pd.DataFrame(np.random.randn(5,3),index = list('abcde'),columns = ['one','two','three']) #創建一個數據框
df 內容
第一個arrary代表第幾行,第二個代表第幾列。
如,如何條件的元素存在在:第一行第三列,第三行第一列,....
㈥ Python 數據處理(二十四)—— 索引和選擇
如果你想獲取 'A' 列的第 0 和第 2 個元素,你可以這樣做:
這也可以用 .iloc 獲取,通過使用位置索引來選擇內容
可以使用 .get_indexer 獲取多個索引:
警告 :
對於包含一個或多個缺失標簽的列表,使用 .loc 或 [] 將不再重新索引,而是使用 .reindex
在以前的版本中,只要索引列表中存在至少一個有效標簽,就可以使用 .loc[list-of-labels]
但是現在,只要索引列表中存在缺失的標簽將引發 KeyError 。推薦的替代方法是使用 .reindex() 。
例如
索引列表的標簽都存在
先前的版本
但是,現在
索引標簽列表中包含不存在的標簽,使用 reindex
另外,如果你只想選擇有效的鍵,可以使用下面的方法,同時保留了數據的 dtype
對於 .reindex() ,如果有重復的索引將會引發異常
通常,您可以將所需的標簽與當前軸做交集,然後重新索引
但是,如果你的索引結果包含重復標簽,還是會引發異常
使用 sample() 方法可以從 Series 或 DataFrame 中隨機選擇行或列。
該方法默認會對行進行采樣,並接受一個特定的行數、列數,或數據子集。
默認情況下, sample 每行最多返回一次,但也可以使用 replace 參數進行替換采樣
默認情況下,每一行被選中的概率相等,但是如果你想讓每一行有不同的概率,你可以為 sample 函數的 weights 參數設置抽樣權值
這些權重可以是一個列表、一個 NumPy 數組或一個 Series ,但它們的長度必須與你要抽樣的對象相同。
缺失的值將被視為權重為零,並且不允許使用 inf 值。如果權重之和不等於 1 ,則將所有權重除以權重之和,將其重新歸一化。例如
當應用於 DataFrame 時,您可以通過簡單地將列名作為字元串傳遞給 weights 作為采樣權重(前提是您要采樣的是行而不是列)。
sample 還允許用戶使用 axis 參數對列進行抽樣。
最後,我們還可以使用 random_state 參數為 sample 的隨機數生成器設置一個種子,它將接受一個整數(作為種子)或一個 NumPy RandomState 對象
當為該軸設置一個不存在的鍵時, .loc/[] 操作可以執行放大
在 Series 的情況下,這實際上是一個追加操作
可以通過 .loc 在任一軸上放大 DataFrame
這就像 DataFrame 的 append 操作
由於用 [] 做索引必須處理很多情況(單標簽訪問、分片、布爾索引等),所以需要一些開銷來搞清楚你的意圖
如果你只想訪問一個標量值,最快的方法是使用 at 和 iat 方法,這兩個方法在所有的數據結構上都實現了
與 loc 類似, at 提供了基於標簽的標量查找,而 iat 提供了基於整數的查找,與 iloc 類似
同時,你也可以根據這些索引進行設置值
如果索引標簽不存在,會放大數據
另一種常見的操作是使用布爾向量來過濾數據。運算符包括:
|(or) 、 &(and) 、 ~ (not)
這些必須用括弧來分組,因為默認情況下, Python 會將 df['A'] > 2 & df['B'] < 3 這樣的表達式評估為 df['A'] > (2 & df['B']) < 3 ,而理想的執行順序是 (df['A'] > 2) & (df['B'] < 3)
使用一個布爾向量來索引一個 Series ,其工作原理和 NumPy ndarray 一樣。
您可以使用一個與 DataFrame 的索引長度相同的布爾向量從 DataFrame 中選擇行
列表推導式和 Series 的 map 函數可用於產生更復雜的標准
我們可以使用布爾向量結合其他索引表達式,在多個軸上索引
iloc 支持兩種布爾索引。如果索引器是一個布爾值 Series ,就會引發異常。
例如,在下面的例子中, df.iloc[s.values, 1] 是正確的。但是 df.iloc[s,1] 會引發 ValueError 。