機器學習——Numpy的神奇索引與布爾索引

在 NumPy 中,神奇索引(Fancy Indexing)?和?布爾索引(Boolean Indexing)?是兩種強大的索引方式,用于從數組中提取特定元素或子集。以下是它們的詳細說明和示例:


1.?神奇索引(Fancy Indexing)

  • 定義:通過傳遞一個整數數組或列表來索引數組,返回指定位置的元素。

  • 特點

    • 索引數組可以是任意形狀。
    • 返回的結果形狀與索引數組一致。
  • 示例

  • import numpy as np 
    array = np.array([10,  20, 30, 40, 50])
    indices = [1, 3, 4]  # 指定索引位置 
    result = array[indices]  # 提取對應位置的元素 
    print(result)  # 輸出: [20 40 50]

  • 多維數組示例

    matrix = np.array([[1,  2, 3], [4, 5, 6], [7, 8, 9]])
    row_indices = [0, 1, 2]
    col_indices = [1, 0, 2]
    result = matrix[row_indices, col_indices]  # 提取 (0,1), (1,0), (2,2) 位置的元素 
    print(result)  # 輸出: [2 4 9]


2.?布爾索引(Boolean Indexing)

  • 定義:通過傳遞一個布爾數組來索引數組,返回滿足條件的元素。

  • 特點

    • 布爾數組必須與目標數組形狀一致。
    • 返回的結果是一維數組。
  • 示例

    array = np.array([10,  20, 30, 40, 50])
    condition = array > 30  # 創建布爾條件 
    result = array[condition]  # 提取滿足條件的元素 
    print(result)  # 輸出: [40 50]

  • 多維數組示例

    matrix = np.array([[1,  2, 3], [4, 5, 6], [7, 8, 9]])
    condition = matrix > 5  # 創建布爾條件 
    result = matrix[condition]  # 提取滿足條件的元素 
    print(result)  # 輸出: [6 7 8 9]


3.?神奇索引與布爾索引的區別

特性神奇索引(Fancy Indexing)布爾索引(Boolean Indexing)
索引類型整數數組或列表布爾數組
結果形狀與索引數組一致一維數組
適用場景提取指定位置的元素提取滿足條件的元素
多維數組支持支持,通過指定行列索引支持,返回滿足條件的所有元素

4.?應用場景

  • 神奇索引
    • 提取特定位置的元素。
    • 重新排列數組。
  • 布爾索引
    • 過濾滿足條件的元素。
    • 數據清洗和預處理。

5.?注意事項

  • 神奇索引:索引數組的值必須在數組的合法范圍內,否則會拋出?IndexError
  • 布爾索引:布爾數組必須與目標數組形狀一致,否則會拋出?IndexError

示例代碼總結

import numpy as np # 神奇索引 
array = np.array([10,  20, 30, 40, 50])
indices = [1, 3, 4]
result_fancy = array[indices]  # 輸出: [20 40 50]# 布爾索引 
condition = array > 30 
result_boolean = array[condition]  # 輸出: [40 50]

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

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

相關文章

Android Studio最后一個綁定JDK8的版本,但是官方下載是最新的,怎么下載Android Studio歷史版本包,這篇文章幫你解決。

最近需要安裝Android Studio 編輯器 發現官網最新的編輯器已經不支持 jdk8了 經過查閱資料: Android Studio最后一個綁定JDK8的版本:4.1.3 下載地址:https://developer.android.google.cn/studio/archive 如果你打開是這樣的 下載頁 這是因為你用的中…

Next-Auth 認證系統:用戶與管理員雙角色登錄配置

概述 本文檔介紹了如何使用 Next-Auth 配置一個同時支持普通用戶和管理員用戶登錄的認證系統。 基本配置 首先,我們需要設置 Next-Auth 的基本配置,包括提供者、回調函數和頁面路由。 import type { NextAuthConfig } from next-auth import type { …

CentOS配置永久靜態IP

在 CentOS 6 中,配置永久 IP 地址需要修改網絡配置文件。以下是詳細步驟: 1. 找到網卡名稱 首先,確定你需要配置 IP 的網卡名稱,通常是 eth0 或類似的名稱。 運行以下命令查看網卡信息: bash ifconfig或者&#xf…

springboot Actuator 指標分析

http.server.requests HTTP 接口性能瓶頸 http.server.requests.max system.cpu.usage 代碼熱點分析或橫向擴容 核心接口性能指標,包含以下維度: count:請求總數 max/sum:最大及總響應時間 status:HTTP 狀態碼分布&a…

在K8S中掛載 Secret 到 Pod

在 Kubernetes 里,把 Secret 掛載到 Pod 中有兩種主要方式:作為卷掛載和作為環境變量掛載。下面為你提供相應的代碼示例。 作為卷掛載 Secret 將 Secret 作為卷掛載到 Pod 時,Secret 的每個鍵會成為掛載目錄下的一個文件,文件內…

mac npm run dev報錯 error:0308010C:digital envelope routines::unsupported

并且提示 Unsupported engine { npm WARN EBADENGINE package: achrinza/node-ipc9.2.2, npm WARN EBADENGINE required: { node: 8 || 10 || 12 || 14 || 16 || 17 }, npm WARN EBADENGINE current: { node: v18.18.0, npm: 9.8.1 } npm WARN EBADENGINE } package.jso…

「宇樹科技」13家核心零部件供應商梳理!

2025年2月6日,摩根士丹利(Morgan Stanley)發布最新人形機器人研報:Humanoid 100: Mapping the Humanoid Robot Value Chain(人形機器人100:全球人形機器人產業鏈梳理)。 2025年2月20日&#xf…

MySQL 性能優化方向

MySQL 性能優化是一個系統性的工作,涉及數據庫設計、查詢優化、索引優化、硬件配置等多個方面。以下是 MySQL 性能優化的主要方向和具體優化方案: 一、數據庫設計優化 1. 合理設計表結構 規范化設計:避免數據冗余,確保數據一致性。適度反規范化:在查詢頻繁的場景下,適當…

MyBatis plus詳解

核心功能 代碼生成器 它能夠依據數據庫表結構,自動生成涵蓋實體類、Mapper 接口、Mapper XML 文件、Service 接口與實現類等在內的基礎代碼。開發人員只需簡單配置數據庫連接信息、表名以及生成代碼的相關參數,即可快速生成符合項目規范的基礎代碼&…

背包問題——多重背包(C語言)

代碼如下&#xff1a; #include<stdio.h>int knapsack(int weight[], int value[], int count[], int n, int capacity) {int* dp (int*)malloc(sizeof(int) * (capacity 1));for (int i 0; i < capacity; i){dp[i] 0;}for (int i 0; i < n; i)//核心代碼{fo…

計算機技術系列博客——目錄頁(持續更新)

1.1 博客目錄專欄 1.1.1 博客文章導航 計算機技術系列博客——目錄頁 1.1.2 網頁資源整理 2.1 計算機科學理論 2.2 軟件工程技術 2.2.1.1 編程語言 Java Java語言基礎 (1) Java基礎知識總結01——Java基礎篇 (2) Java基礎知識總結02——集合框架篇 (3) Java基礎知識總結03—…

<項目> 主從Reactor模型的高并發服務器

目錄 Reactor 概念 分類 單Reactor單線程 單Reactor多線程 多Reactor多線程 項目介紹 項目規劃 模塊關系 實現 TimerWheel -- 時間輪定時器 定時器系統調用 時間輪設計 通用類型Any Buffer Socket Channel Poller EventLoop&#xff08;核心&#xff09; eventfd 設計思路 …

車載以太網網絡測試-20【傳輸層-DOIP協議-3】

1 摘要 本文繼續對ISO 13400-2定義的節點管理報文進行介紹&#xff0c;主要對路由激活請求/響應報文以及在線檢查請求/響應報文的作用、幀結構以及示例進行介紹。 上文回顧&#xff1a; 車載以太網網絡測試-19【傳輸層-DOIP協議-2】 在進行詳細介紹之前&#xff0c;還是先回顧…

Jvm運行時數據區有哪些

Jvm運行時數據區有哪些 程序計數器&#xff08;Program Counter Register&#xff09; 作用&#xff1a; 可以看作是當前線程所執行的字節碼的行號指示器。在多線程環境下&#xff0c;每個線程都有自己獨立的程序計數器&#xff0c;線程私有的&#xff0c;用于記錄該線程正在執…

Compose 實踐與探索十五 —— 自定義觸摸

1、自定義觸摸與一維滑動監測 之前我們在講 Modifier 時講過如下與手勢檢測相關的 Modifier&#xff1a; Modifier.clickable { } Modifier.combinedClickable { } Modifier.pointerInput {detectTapGestures { } }這里對以上內容就不再贅述了&#xff0c;直接去講解更復雜的…

Python 中有哪些庫可以幫助讀取和操作 shapefile 文件?

Python操作Shapefile文件庫推薦 1. PyShp (pyshp) 特點&#xff1a;純Python實現&#xff0c;無外部依賴&#xff0c;輕量級&#xff0c;支持完整的Shapefile格式&#xff08;shp、dbf、shx&#xff09;讀寫。適用場景&#xff1a;基礎讀寫、簡單幾何操作、文件格式轉換。安裝…

JSONPath 的介紹

JSONPath的起源 1. 起源背景 在討論JSONPath的起源之前&#xff0c;讓我們先了解JSONPath是什么。JSONPath 是一種查詢語言&#xff0c;用于從JSON&#xff08;JavaScript Object Notation&#xff09;數據結構中提取數據。它允許開發者通過類似于XPath的表達式來定位JSON對象…

【CSS文字漸變動畫】

CSS文字漸變動畫 HTML代碼CSS代碼效果圖 HTML代碼 <div class"title"><h1>今天是春分</h1><p>正是春天到來的日子&#xff0c;花都開了&#xff0c;小鳥也飛回來了&#xff0c;大山也綠了起來&#xff0c;空氣也有點嫩嫩的氣息了</p>…

Bitcoin Thunderbolt 內測通道開啟,加速比特幣交易新時代

比特幣作為全球領先的加密貨幣&#xff0c;一直占據著去中心化金融的核心地位。然而&#xff0c;隨著比特幣生態的不斷擴展&#xff0c;其交易速度和擴容問題逐漸成為制約發展的關鍵瓶頸。為解決這一難題&#xff0c; 比特幣雷電網絡&#xff08;Bitcoin Thunderbolt&#xff0…

Postgresql無法連接問題匯總

一. 數據庫服務未啟動 ?報錯信息&#xff1a; [postgresk8s-node2 ~]$ psql psql: could not connect to server: No such file or directoryIs the server running locally and acceptingconnections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"…