【數據挖掘】NumPy的索引與切片(Indexing Slicing)

📌 NumPy ndarray 的索引與切片(Indexing & Slicing)

NumPy 提供 靈活高效 的索引與切片方式,支持 一維、二維、多維數組 的訪問與操作。


1?? 索引(Indexing)

索引用于訪問 NumPy 數組中的 單個元素

一維數組索引

import numpy as nparr = np.array([10, 20, 30, 40, 50])print(arr[0])   # 訪問第 1 個元素 -> 10
print(arr[-1])  # 訪問最后 1 個元素 -> 50
print(arr[2])   # 訪問索引 2 的元素 -> 30

二維數組索引

arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(arr2d[0, 1])  # 訪問第 1 行第 2 列 -> 2
print(arr2d[2, -1]) # 訪問最后 1 行最后 1 列 -> 9
  • arr2d[0, 1]:表示第 0 行、1 列
  • arr2d[2, -1]:表示 最后 1 行、最后 1 列(負索引)。

2?? 切片(Slicing)

切片用于提取 數組的子集,語法如下:

array[start:stop:step]
  • start:起始索引(包含)。
  • stop:結束索引(不包含)。
  • step:步長(默認為 1)。

一維數組切片

arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])print(arr[2:7])    # 取索引 2 到 6 -> [2 3 4 5 6]
print(arr[:5])     # 取前 5 個元素 -> [0 1 2 3 4]
print(arr[3:])     # 從索引 3 開始到結尾 -> [3 4 5 6 7 8 9]
print(arr[::2])    # 每隔 2 取一個 -> [0 2 4 6 8]
print(arr[::-1])   # 逆序數組 -> [9 8 7 6 5 4 3 2 1 0]

二維數組切片

arr2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])print(arr2d[:2, 1:3])  # 取前 2 行,第 2~3 列 -> [[2 3]#                        [6 7]]print(arr2d[1:, ::2])  # 從第 2 行開始,每隔 2 列取值 -> [[5 7]#                                [9 11]]print(arr2d[::-1, ::-1])  # 行和列都逆序 -> [[12 11 10 9]#                 [8 7 6 5]#                 [4 3 2 1]]

3?? 高級索引(Boolean & Fancy Indexing)

NumPy 支持 布爾索引花式索引,可實現更復雜的數據提取。

(1) 布爾索引

arr = np.array([10, 20, 30, 40, 50])mask = arr > 25   # 返回布爾數組:[False False  True  True  True]
print(arr[mask])  # 取出大于 25 的元素 -> [30 40 50]# 直接寫
print(arr[arr % 20 == 0])  # 取能被 20 整除的數 -> [20 40]

(2) 花式索引(Fancy Indexing)

arr = np.array([10, 20, 30, 40, 50])idx = [0, 3, 4]  # 選索引 0, 3, 4
print(arr[idx])  # -> [10 40 50]
arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])rows = [0, 1, 2]  # 選 3 行
cols = [2, 1, 0]  # 選 3 列
print(arr2d[rows, cols])  # -> [3 5 7]

📝 總結

操作語法示例說明
索引arr[2]訪問索引 2 位置的元素
二維索引arr2d[1, 2]訪問第 2 行第 3 列
切片arr[1:4]取索引 1 到 3(不含 4)
步長arr[::2]每隔 2 取 1 個
逆序arr[::-1]逆序數組
布爾索引arr[arr > 20]取大于 20 的元素
花式索引arr[[1, 3, 4]]取索引 1, 3, 4

NumPy 索引 & 切片 可實現高效數據操作 🚀

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71290.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71290.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71290.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI工具:deepseek+階躍視頻,生成好玩的視頻

目標 測試一下,當下好玩的AI工具,緩解一下緊張的AI學習~ 用deepseek生成視頻制作提示詞,讓后把提示詞給階躍視頻生成,一個視頻就生成了。具體操作如下。 操作過程 在階躍官網,階躍AI,注冊一個賬號&…

利用矩陣相乘手動實現卷積操作

卷積(Convolution) 是信號處理和圖像處理中的一種重要操作,廣泛應用于深度學習(尤其是卷積神經網絡,CNN)中。它的核心思想是通過一個卷積核(Kernel) 或 濾波器(Filter&am…

前端面試場景題葵花寶典之四

87.場景面試之大數運算:超過js中number最大值的數怎么處理 在 JavaScript 中,Number.MAX_SAFE_INTEGER(即 2^53 - 1,即 9007199254740991)是能被安全表示的最大整數。超過此值時,普通的 Number 類型會出現…

Linux中死鎖問題的探討

在 Linux 中,死鎖(Deadlock) 是指多個進程或線程因為競爭資源而相互等待,導致所有相關進程或線程都無法繼續執行的狀態。死鎖是一種嚴重的系統問題,會導致系統資源浪費,甚至系統崩潰。 死鎖的定義 死鎖是指…

【基于Mesh組網的UWB技術討論】

基于Mesh組網的UWB技術討論 Mesh 組網無線Mesh與無線中繼的區別 基于Mesh拓撲的UWB技術可行性星型拓撲 / Mesh拓撲的UWB技術比較 Mesh 組網 Mesh(網格)是一種無中心、自組織的高度業務協同的網絡。通常分為無線Mesh和有線Mesh,但在實際應用場景,有線Mes…

Python Cookbook-3.1 計算昨天和明天的日期

任務 獲得今天的日期,并以此計算昨天和明天的日期。 解決方案 方案一: 無論何時遇到有關“時間變化”或者“時間差”的問題,先考慮datetime包: import datetime today datetime.date.today() yesterday today - datetime.timedelta(day…

USB 模塊 全面解析(二)

本文是我整理的一些 USB 的學習心得,希望能對大家有所幫助。 文章目錄 前言🍍USB 協議層數據格式🍇包格式🍓 PID 域🍓 令牌包🍓 數據包🍓 握手包 🍇傳輸類型🍓 批量傳輸&…

從基礎到實踐(十):MOS管的全面解析與實際應用

MOS管(金屬-氧化物半導體場效應晶體管)是現代電子技術的基石,憑借高輸入阻抗、低功耗和易集成特性,成為數字電路、電源管理和信號處理的核心元件。從微處理器到新能源汽車電驅系統,其高效開關與放大功能支撐了計算機、…

AES/CBC/PKCS5Padding加密

1、加密代碼如下 public static String encryptAEs_CBC(String data,String key,byte[] iv) {Cipher cipher = null;try {cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");//位數不夠,自動補一個長度int blocksize = cipher.getBlockSize();byte[] dataBytes …

指紋細節提取(Matlab實現)

指紋細節提取概述指紋作為人體生物特征識別領域中應用最為廣泛的特征之一,具有獨特性、穩定性和便利性。指紋細節特征對于指紋識別的準確性和可靠性起著關鍵作用。指紋細節提取,即從指紋圖像中精確地提取出能夠表征指紋唯一性的關鍵特征點,是…

Python 圖像處理之 Pillow 庫:玩轉圖片

哈嘍,大家好,我是木頭左! Pillow 庫作為 Python 圖像處理的重要工具之一,為提供了便捷且功能豐富的接口,讓能夠輕松地對圖像進行各種操作,從簡單的裁剪、旋轉到復雜的濾鏡應用、圖像合成等,幾乎無所不能。接下來,就讓一起深入探索如何使用 Pillow 庫來處理圖片,開啟一…

Android Flow 示例

在Android開發的世界里,處理異步數據流一直是一個挑戰。隨著Kotlin的流行,Flow作為Kotlin協程庫的一部分,為開發者提供了一種全新的方式來處理這些問題。今天,我將深入探討Flow的設計理念,并通過具體的例子展示如何在實…

記錄uniapp小程序對接騰訊IM即時通訊無ui集成(2)

完成以上步驟之后開始進行登錄,登陸就需要賬號。這個賬號我們可以在騰訊云中創建。 有了賬號之后開始去小程序進行登陸操作。騰訊云接口文檔 這里除了帳號還需要一個校驗值userSig正常項目開發這個字段可以在登陸后讓后端返回,現在是測試我們直接去控制…

北京航空航天大學計算機復試上機真題

北京航空航天大學計算機復試上機真題 2023北京航空航天大學計算機復試上機真題 在線評測&#xff1a;https://app2098.acapp.acwing.com.cn/ 階乘和 題目描述 求Sn1!2!3!4!5!…n!之值&#xff0c;其中n是一個數字。 輸入格式 輸入一個n&#xff08;n<20&#xff09; …

阿里萬相,正式開源

大家好&#xff0c;我是小悟。 阿里萬相正式開源啦。這就像是AI界突然開啟了一扇通往寶藏的大門&#xff0c;而且還是免費向所有人敞開的那種。 你想想看&#xff0c;在這個科技飛速發展的時代&#xff0c;AI就像是擁有神奇魔法的魔法師&#xff0c;不斷地給我們帶來各種意想…

算法之數據結構

目錄 數據結構 數據結構與算法面試題 數據結構 《倚天村 ? 圖解數據結構》 | 小傅哥 bugstack 蟲洞棧 ?數據結構基礎知識體系詳解? | Java 全棧知識體系 線性數據結構 | JavaGuide 數據結構與算法面試題 數據結構與算法面試題 | 小林coding

零基礎學習之——深度學習算法介紹01

第一節.基礎骨干網絡 物體分類是計算機視覺&#xff08;computer vision&#xff0c;CV&#xff09;中最經典的、也是目前研究得最為透徹的一 個領域&#xff0c;該領域的開創者也是深度學習領域的“名人”級別的人物&#xff0c;例如 Geoffrey Hinton、Yoshua Bengio 等。物…

弧度與角度之間的轉換公式

Radian 弧度的英語 簡稱 Rad Degree 角度的英語 簡稱 Deg 角度轉弧度 RadDeg*180/π CogMuisc.DegToRad(double degress) DegRad/180*π CogMuisc.RadToDeg(double radians) 總結: 角度大 弧度小 弧度轉角度 肯定要乘以一個大于1的數 那就是…

css之英文換行樣式

在 CSS 中&#xff0c;要實現英文文本自動換行但不從單詞中間斷開的效果&#xff0c;可以使用 word-wrap 或 overflow-wrap 屬性。以下是相關的 CSS 屬性和它們的配置&#xff1a; 使用 overflow-wrap 或 word-wrap /* This property is used to handle word breaking */ .wo…

40歲開始學Java:Java中單例模式(Singleton Pattern),適用場景有哪些?

在Java中&#xff0c;單例模式&#xff08;Singleton Pattern&#xff09;用于確保一個類只有一個實例&#xff0c;并提供全局訪問點。以下是詳細的實現方式、適用場景及注意事項&#xff1a; 一、單例模式的實現方式 1. 餓漢式&#xff08;Eager Initialization&#xff09; …