運用數組和矩陣對數據進行存取和運算——NumPy模塊 之六

目錄

  NumPy模塊介紹

  3.6.1 數組之間的運算

  3.6.2 算術運算

  3.6.3 比較運算

  3.6.4 邏輯運算

  3.6.5 矩陣運算

  3.6.6 廣播運算

  3.6.7 聚合運算

  3.6.8 三角函數與指數對數運算

  3.6.9 位運算

  3.6.10 條件運算

  3.6.11 數組的統計運算

  3.6.12 關鍵問題:數組之間的運算對數組的維度有要求嗎?

  3.6.13 總結

  

  NumPy模塊介紹

  NumPy 是 Python 科學計算領域的重要基石,與當前 “躺吃旅行” 話題看似不相關,但在數據處理分析上意義重大。我將從它的核心功能、應用場景和優勢等方面展開介紹。

  NumPy(Numerical Python)是 Python 語言中用于科學計算的基礎庫,它提供了高性能的多維數組對象以及大量用于對數組進行操作的函數,是數據科學、機器學習、人工智能等領域不可或缺的工具。NumPy 的核心數據結構是ndarray(多維數組),這種數組允許在內存中以連續的方式存儲同類型的數據,相較于 Python 原生列表,它在存儲和運算效率上有著顯著提升。通過 NumPy,用戶可以輕松實現數組的創建、索引、切片、變形,以及各種數學運算,如矩陣乘法、統計計算、傅里葉變換等。

  在實際應用中,NumPy 廣泛應用于數據分析、機器學習算法的底層實現、圖像和信號處理等領域。例如,在機器學習中,數據集通常會被加載并轉換為 NumPy 數組進行預處理和模型訓練;在圖像處理中,圖像數據也會被表示為多維數組,借助 NumPy 提供的函數完成圖像的濾波、變換等操作。此外,NumPy 還與眾多科學計算庫緊密集成,如 SciPy、Pandas 等,共同構建起強大的 Python 科學計算生態,極大地提升了數據處理和分析的效率。

  3.6.1 數組之間的運算

  在 NumPy 中,數組之間的運算可以分為以下幾種類型,每種類型都有其獨特的應用場景和計算規則:

  3.6.2 算術運算

  對數組元素執行逐元素的數學運算,包括:

  • 基本運算符:+、-、*、/、//(整除)、%(取余)、**(冪運算)
  • 對應函數:add()、subtract()、multiply()、divide()、floor_divide()、mod()、power()

  示例:

import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])print(a + b)      # 輸出: [5 7 9]
print(a * b)      # 輸出: [4 10 18]
print(np.power(a, 2))  # 輸出: [1 4 9]

  3.6.3 比較運算

  對數組元素執行逐元素的比較,返回布爾數組,包括:

  • 比較運算符:>、<、>=、<=、==、!=
  • 對應函數:greater()、less()、greater_equal()、less_equal()、equal()、not_equal()

  示例:

a = np.array([1, 2, 3])
b = np.array([2, 2, 2])print(a > b)      # 輸出: [False False  True]
print(a == b)     # 輸出: [False  True False]

  數組之間的比較運算在實際運用中還是比較廣泛的,為了加深同學們對這一塊知識的理解,我編寫了兩個案例,供大家學習掌握,并能在實際編程中靈活運用。

  示例 1:檢測學生成績是否達標

  假設有兩個班級的數學考試成績,需要比較哪些學生的成績達到了 80 分的優秀標準。

import numpy as np# 創建兩個班級的成績數組
class_a = np.array([78, 85, 92, 65, 88])
class_b = np.array([82, 76, 90, 85, 89])# 比較成績是否達到80分
excellent_a = class_a >= 80
excellent_b = class_b >= 80print("班級A優秀學生:", excellent_a)  # [False  True  True False  True]
print("班級B優秀學生:", excellent_b)  # [ True False  True  True  True]# 統計優秀學生人數
print("班級A優秀人數:", np.sum(excellent_a))  # 3
print("班級B優秀人數:", np.sum(excellent_b))  # 4

  示例 2:篩選符合條件的二維數據

  假設有一個二維數組表示商品的價格和銷量,需要篩選出價格高于 50 且銷量大于 100 的商品。

import numpy as np# 創建商品數據:每行表示 [價格, 銷量]
products = np.array([[60, 120],[45, 80],[70, 150],[55, 90],[80, 200]
])# 比較價格和銷量
price_high = products[:, 0] > 50  # 價格列
sales_high = products[:, 1] > 100  # 銷量列# 同時滿足兩個條件
both_high = price_high & sales_highprint("價格>50的商品:", price_high)  # [ True False  True  True  True]
print("銷量>100的商品:", sales_high)  # [ True False  True False  True]
print("符合條件的商品:", both_high)  # [ True False  True False  True]# 篩選符合條件的商品數據
selected_products = products[both_high]
print("篩選結果:\n", selected_products)
# 輸出:
# [[ 60 120]
#  [ 70 150]
#  [ 80 200]]

  關鍵要點

  1. 比較運算返回布爾數組:可直接用于統計或篩選。
  2. 多維數組按元素比較:通過索引選擇特定維度(如products[:, 0])。
  3. 邏輯組合條件:使用&(與)、|(或)、~(非)連接多個比較結果。

  3.6.4 邏輯運算

  對布爾數組執行逐元素的邏輯操作,包括:

  • 邏輯運算符:&(與)、|(或)、~(非)、^(異或)
  • 對應函數:logical_and()、logical_or()、logical_not()、logical_xor()

  示例

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

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

相關文章

JGL066生活垃圾滾筒篩分選機實驗裝置

JGL066生活垃圾滾筒篩分選機實驗裝置 一.實驗目的 本實驗對生活垃圾滾筒分選機進行垃圾分選的實驗。通過實驗達到以下目的&#xff1a; 1.了解分選的原理、方法和影響分選效果的主要因素。 2.確定分選的適宜條件。 二.技術指標 1.生活垃圾分選機處理量分為0.5~2t/h。 2.運動參數…

Excelize 開源基礎庫發布 2.9.1 版本更新

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎庫&#xff0c;基于 ECMA-376&#xff0c;ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Excel、WPS、OpenOffice 等辦公軟件創建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式&#xf…

xss-labs靶場基礎8-10關(記錄學習)

前言&#xff1a; 內容&#xff1a; 第八關 關卡資源網站&#xff0c;html編碼網站&#xff08;兩個網站&#xff0c;一個是實體編號轉義&#xff08;只對特殊字符有效&#xff0c;字母無效&#xff09;、實體符號轉義&#xff09; 在線Html實體編碼解碼-HTML Entity Encodi…

Kafka topic 中的 partition 數據傾斜問題

在 Kafka 中&#xff0c;如果一個 Topic 有多個 Partition&#xff0c;但這些 Partition 中的消息數量或流量分布不均衡&#xff0c;就會出現 數據傾斜&#xff08;Data Skew&#xff09; 的問題。 ? 什么是數據傾斜&#xff1f; 數據傾斜指的是&#xff1a; 某些 Partitio…

Retrofit vs Feign: 介紹、對比及示例

1. 介紹 Retrofit Retrofit 是 Square 公司開發的一個類型安全的 HTTP 客戶端庫&#xff0c;主要用于 Android 和 Java 應用。它將 HTTP API 轉換為 Java 接口&#xff0c;通過注解來描述 HTTP 請求。 主要特點: 基于注解的 API 定義支持同步和異步調用支持多種數據格式轉換…

SpringBoot整合MyBatis-Plus:零XML實現高效CRUD

前言 作為一名開發者&#xff0c;數據庫操作是我們日常工作中不可或缺的部分。傳統的MyBatis雖然強大&#xff0c;但需要編寫大量XML映射文件&#xff0c;這在快速開發的今天顯得效率不足。MyBatis-Plus&#xff08;簡稱MP&#xff09;作為MyBatis的增強工具&#xff0c;在保留…

SpringCloud之Gateway基礎認識-服務網關

0、Gateway基本知識 Gateway 是在 Spring 生態系統之上構建的 API 網關服務&#xff0c;基于 Spring &#xff0c;Spring Boot 和 Project Reactor 等技術。 Gateway 旨在提供一種簡單而有效的方式來對 API 進行路由&#xff0c;以及提供一些強大的過濾器功能&#xff0c;例如…

Redis掃盲

Redis 緩存中間件 基礎篇 鍵值數據庫 key Value 是NoSql數據庫 非結構化、無關聯的、非SQL、BASE&#xff08;無法滿足ACID&#xff09; 命令執行是單線程&#xff0c;符合原子性。 低延遲、速度塊&#xff08;基于內存&#xff0c;IO多路復用&#xff0c;良好的編碼&am…

【FMMT】基于模糊多模態變壓器模型的個性化情感分析

遇到很難的文獻看不懂,不應該感到氣餒,應該激動,因為外審估計也看不太懂,那么學明白了可以嚇唬他 缺陷一:輸入依賴性與上下文建模不足?? ??缺陷描述??: 傳統自注意力機制缺乏因果關系,難以捕捉序列歷史背景多模態數據間的復雜依賴關系未被充分建模CNN/RNN類模型在…

Qt Creator 配置 Android 編譯環境

Qt Creator 配置 Android 編譯環境 環境配置流程下載JDK修改Qt Creator默認android配置文件修改sdk_definitions.json配置修改的內容 Qt Creator配置 異常處理刪除提示占用編譯報錯連接安卓機調試APP閃退無法進入 debug 斷點 環境 Qt Creator 版本 qtcreator-16.0.1Win10 嗯, …

使用聊天模型和提示模板構建一個簡單的 LLM 應用程序

官方教程 官方案例 在上面的鏈接注冊后&#xff0c;請確保設置您的環境變量以開始記錄追蹤 export LANGSMITH_TRACING"true" export LANGSMITH_API_KEY"..."或者&#xff0c;如果在筆記本中&#xff0c;您可以使用以下命令設置它們 import getpass imp…

React vs Vue:點擊外部事件處理的對比與實現

React vs Vue&#xff1a;點擊外部事件處理的對比與實現 在 Web 應用中&#xff0c;“點擊外部事件監聽”是一種常見需求&#xff0c;典型應用如&#xff1a;點擊彈窗外部關閉彈窗、點擊下拉菜單外關閉菜單。雖然在 React 和 Vue 中實現的原理類似——都是通過監聽 document 的…

3335. 字符串轉換后的長度 I

3335. 字符串轉換后的長度 I class Solution:def lengthAfterTransformations(self, s: str, t: int) -> int:# 大質數mod 10**97# 創建一個長度為26的數組cnt&#xff0c;對應26個小寫字母cnt [0]*26# 計算出s中26個字符分別有多少個for ch in s:cnt[ord(ch)-ord(a)] 1f…

Java詳解LeetCode 熱題 100(15):LeetCode 189. 輪轉數組(Rotate Array)詳解

文章目錄 1. 題目描述2. 理解題目3. 解法一&#xff1a;使用額外數組3.1 思路3.2 Java代碼實現3.3 代碼詳解3.4 復雜度分析3.5 適用場景 4. 解法二&#xff1a;環狀替換法&#xff08;原地算法&#xff09;4.1 思路4.2 Java代碼實現4.3 代碼詳解4.4 復雜度分析4.5 陷阱與注意事…

數據治理域——日志數據采集設計

摘要 本文主要介紹了Web頁面端日志采集的設計。首先闡述了頁面瀏覽日志采集&#xff0c;包括客戶端日志采集的實現方式、采集內容及技術亮點。接著介紹了無線客戶端端日志采集&#xff0c;包括UserTrack的核心設計、移動端與瀏覽器端采集差異以及典型應用場景崩潰分析。最后探…

PYTHON訓練營DAY24

# SO代碼我們的感情好像跳樓機 # 元組創建時&#xff0c;可以省略括號&#xff1a;my_tuple4 10, 20, thirty # 字符串要加“ ” 元組 一、創建 my_tuple1 (1, 2, 3) my_tuple2 (a, b, c) my_tuple3 (1, hello, 3.14, [4, 5]) # 可以包含不同類型的元素 print(my_tupl…

超聲波傳感器模塊

歡迎來到 破曉的歷程的 博客 ??不負時光&#xff0c;不負己?? 文章目錄 1.HC-SR04介紹2.HC-SR04原理介紹2.1原理概述3.2原理詳解 4驅動代碼編寫4.1寫前思考4.2硬件連線 5.總結hcsr04.hhcsr04.c 1.HC-SR04介紹 超聲波傳感器有很多種類的型號&#xff1a;HC-SR04、UC-025、…

《Effective Python》第2章 字符串和切片操作——深入理解Python 中的字符數據類型(bytes 與 str)的差異

引言 本篇博客基于學習《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 10: Know the Differences Between bytes and str 的總結與延伸。在 Python 編程中&#xff0c;字符串處理是幾乎每個開發者都會頻繁接觸的基礎操作。然而&#xff0c;Python 中的…

py7zr解壓文件時報錯CrcError(crc32, f.crc32, f.filename)

報錯信息 Traceback (most recent call last):File "/home/hp/project/test/file_util.py", line 130, in extract_archive_7zarchive.extract(targets[fixed_file], pathoutput_dir, recursiveTrue)File "/home/hp/miniconda3/envs/celery/lib/python3.10/sit…

物理:由基本粒子組成的個體能否提煉和重組?

個體差異源于基本粒子組合的復雜性與隨機性,這一假設若成立,確實可能為生物醫學帶來革命性突破——但需要突破技術、理論與系統層級的多重壁壘。以下從科學邏輯與技術路徑展開分析: 一、隨機組合中的共性與穩定結構 1. 自然界的自組織規律 涌現性(Emergence):盡管粒子組…