Numpy庫,矩陣形狀與維度操作

目錄

一.numpy庫簡介與安裝

numpy庫的安裝

二.numpy核心功能

1.矩陣處理

2.數學運算

三.數據的維度與屬性

1.維度管理

2.屬性方法

四.數據類型與存儲范圍

五.矩陣形狀與維度操作

六.數據升維與reshape()方法


一.numpy庫簡介與安裝

NumPy是Python中用于科學計算的核心庫之一,提供高性能的多維數組對象(ndarray)及工具,適用于數值計算、數據分析和機器學習等領域。

numpy庫的安裝

pip install numpy==1.23.5 -i 鏡像源地址

注意:

若安裝失敗,需檢查Python版本兼容性(如3.7/3.9適配1.x版本,避免2.x版本)。

二.numpy核心功能

1.矩陣處理

  • 將數據存儲為矩陣(ndarray類型),顯著提升計算速度(底層由C語言實現)。
  • 支持高維數據(如二維、三維矩陣),可通過numpy.array()轉換列表為矩陣。

2.數學運算

  • 集成數學庫功能(如sin, cos, abs等),支持矩陣轉置、求逆、微分等高級運算。
  • 對比Python原生列表:numpy提供更豐富的數學操作且計算效率更高。

三.數據的維度與屬性

1.維度管理

  • 一維矩陣(如[1 2 3 4 5 6])顯示為無逗號排列。
    import numpy as np
    list =[1,2,3,4,5,6]
    print(np.array(list))
  • 高維矩陣(如三維)需通過索引(如z0, z1)查看不同層級數據。
    import numpy as np
    list =[1,2,3,4,5,6]
    z=np.array([[list,list,list],[list,list,list],[list,list,list]])
    

2.屬性方法

  • cshape:返回矩陣形狀(如(5,)表示一維5元素)。
    x=np.array([1,2,3,4,5])
    print(x.shape)

  • (3,3,6)表示三維數據,共有3×3×6個元素

    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    y= np.array([m,m,m])
    print(y.shape)

  • ndim:返回維度數(如三維矩陣返回3)。
    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    y= np.array([m,m,m])
    print(y.ndim)

  • dtype:查看數據類型(默認int32表示32位整數)。

四.數據類型與存儲范圍

  • int8 的最小值為 0(二進制全為 0),最大值為 256(二進制全為 1),實際存儲范圍為 0 到 255。
  • 自然界中的亮度值(如 RGB 顏色)范圍是 0 到 255,因此計算機視覺中常用 int8 存儲顏色值。
  • int32 的存儲范圍為 0 到 232,適用于大數值存儲;float32 和 float64 用于高精度浮點數(如保留多位小數)。
  • 五.矩陣形狀與維度操作

  • shape:描述矩陣的行列結構(如 3 行 5 列返回 (3, 5))。
  • ndim:返回矩陣的維度數(一維返回 1,二維返回 2)。
  • size:返回矩陣中元素的總數(如 15 個數據返回 15)。
    import numpy as np
    list =[1,2,3,4,5,6]
    m = np.array([list,list,list])
    print(m.size)

  1. dtype:返回矩陣元素的數據類型

    int8, int16, int32, int64: 表示不同長度的有符號整數。

    uint8, uint16, uint32, uint64: 表示不同長度的無符號整數。

    float16, float32, float64 (float 是 float64 的簡寫): 表示不同精度的浮點數。

    complex64, complex128 (complex 是 complex128 的簡寫): 表示復數,其中64和128表示復數的實部和虛部的位數。

    bool: 布爾類型,可以存儲True或False。

    str_: 表示定長字符串,可以通過添加數字來指定字符串的長度,如 'S10' 表示長度為10的字符串。

    object: 表示Python對象類型,可以用來存儲任意Python對象。

六.數據升維與reshape()方法

  • reshape:將一維數據轉換為多維矩陣,需指定新形狀(如 (4, 4) 將 16 個數據轉為 4 行 4 列)。參數 newshape 可為元組(如 (4, 4))或使用 -1 自動計算維度(如 reshape(4, -1) 表示 4 行,列數自動推導為 4)。
    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(4,4))

    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(4,-1))

  • 三維轉換示例:reshape(1, -1, 2) 將 16 個數據轉為 1×8×2 的三維結構。
    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    print(v.reshape(1,-1,2))

  • resize:調整矩陣大小,可直接修改原始數據到相應的維度返回值 Nonereshape()方法則返回的是修改后的矩陣而原來的矩陣并不會改變

    不返回計算結果,直接修改原始數組

    list1=[1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4]
    v=np.array(list1)
    r = v.resize(4,4)#直接會修改原始數據到相應的維度
    print(r)
    print(v)
    print(v.ndim)
    

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

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

相關文章

圖論(2):最短路

最短路一、模板1. Floyd2. 01BFS3. SPFA4. Dijkstra(弱化版)5. Dijkstra(優化版)二、例題1. Floyd1.1 傳送門1.2 無向圖最小環1.3 災后重建1.4 飛豬2. 01BFS2.1 Kathiresan2.2 障礙路線2.3 奇妙的棋盤3. SPFA3.1 奶牛派對3.2 營救…

“融合進化,智領未來”電科金倉引領數字化轉型新紀元

一、融合進化 智領未來電科金倉2025產品發布會重磅開啟! 7月15日,以“融合進化 智領未來”為主題的電科金倉2025產品發布會在北京舉辦。產品發布會上展示了四款代表未來數字化趨勢的創新性產品。這些產品不僅涵蓋了數據庫技術,還涉及到數據集…

常規筆記本和加固筆記本的區別

在現代科技產品中,筆記本電腦因其便攜性和功能性被廣泛應用。根據使用場景和需求的不同,筆記本可分為常規筆記本和加固筆記本,二者在多個方面存在顯著區別。適用場景是區分二者的重要標志。常規筆記本主要面向普通消費者和辦公人群&#xff0…

Shell 腳本編程全面學習指南

前言Shell 腳本編程是 Linux 和 Unix 系統管理、自動化任務的核心工具之一。通過 Shell 腳本,你可以自動化重復性操作、簡化復雜流程、提高系統管理效率,甚至構建完整的自動化運維工具。本文將帶你從基礎到進階,全面學習 Shell 腳本編程&…

DelayQueue延遲隊列的使用

1、DelayQueue簡介 DelayQueue 也是 Java 并發包(java.util.concurrent)中的一個特殊隊列,用于在指定的延遲時間之后處理元素。 DelayQueue的一些關鍵特性: 延遲元素處理:只有當元素的延遲時間到期時,元素才能被取出…

QT6 源,七章對話框與多窗體(6) 顏色對話框 QColorDialog :本類的屬性,信號函數,靜態成員函數,以及源代碼

(1)本類的繼承關系如下 :(2) 對于本標準顏色對話框來講,學會使用其靜態函數以獲取到顏色就足夠了。(3) 開始學習本類的靜態成員函數 :(4)測試一下…

金倉數據庫:融合進化,智領未來——2025年數據庫技術革命的深度解析

引言 在數字中國戰略的推動下,數據庫作為數字經濟的基礎設施,正經歷著前所未有的技術重構。2025年7月15日,電科金倉以"融合進化,智領未來"為主題,發布了新一代數據庫產品矩陣,標志著國產數據庫在…

【人工智能99問】卷積神經網絡(CNN)的結構和原理是什么?(10/99)

文章目錄卷積神經網絡(CNN)的結構及原理一、CNN的核心結構1. 輸入層(Input Layer)2. 卷積層(Convolutional Layer)2. 卷積層的核心機制:局部感受野與權值共享3. 池化層(Pooling Laye…

CCF編程能力等級認證GESP—C++7級—20250628

CCF編程能力等級認證GESP—C7級—20250628單選題(每題 2 分,共 30 分)判斷題(每題 2 分,共 20 分)編程題 (每題 25 分,共 50 分)線圖調味平衡單選題(每題 2 分,共 30 分&…

《Python 類設計模式:屬性分類(類屬性 VS 實例屬性)與方法類型(實例 / 類 / 靜態)詳解》

Python 類和對象:從 "圖紙" 到 "實物" 的編程思維面向對象編程(Object-Oriented Programming,簡稱OOP )是一種通過組織對象來編程的方法。1.初識類和對象:用生活例子看透核心概念1.1類-class物與類…

Eureka服務端啟動

目錄 1、相關文章 2、創建eureka-server子工程 3、父工程build.gradle引入版本依賴管理 4、子工程build.gradle引入依賴 5、將main重命名為EurekaApplication并修改代碼 6、添加application.yml文件 7、啟動工程并訪問 8、訪問界面如下 9、 完整目錄結構 1、相關文章 …

AWS Partner: Sales Accreditation (Business)

AWS Partner: Sales Accreditation (Business)云概念和AWS云計算什么是云計算?計算的演變趨勢云計算部署模型AWS 客戶采用的模式為什么客戶選擇AWSAWS競爭優勢高可用的全球基礎設施AWS服務服務廣度和深度AWS產品和服務服務類別AWS解決方案庫A…

深入理解設計模式之中介者模式:解耦對象交互的利器

為什么需要中介者?在軟件開發中,我們經常會遇到對象之間需要相互通信的場景。當系統規模較小時,對象直接相互引用并通信可能不會帶來太大問題。但隨著系統復雜度增加,對象間的交互關系會變得錯綜復雜,形成一個復雜的網…

從 0 安裝 Label Studio:搭建可后臺運行的數據標注平臺(systemd 實踐

本文將介紹如何使用 pip 安裝 Label Studio,并通過 systemd 實現開機自啟與后臺運行,適用搭建個人項目的數據標注平臺。 一、Label Studio 簡介 Label Studio 是一個開源、跨模態的數據標注工具,支持文本、圖像、音頻、視頻、HTML等多種類型…

【數據結構】鏈表(linked list)

目錄 一、鏈表的介紹 二、單鏈表 1. 單鏈表的初始化 2. 單鏈表的插入 (1)動態申請一個節點 (2)頭插法 (3)尾插法 (4)按照位置來插入 (5)在地址之前插…

反序列化漏洞1-PHP序列化基礎概念(0基礎超詳細)

一.PHP序列化基礎概念首先當我們看到反序列化漏洞這個概念,我們的第一個問題是什么是反序列化?那么我們要知道什么是反序列化就要知道什么是序列化。序列化就是可以將一個對象壓縮并格式化成字符串,可以將該對象保存下來,以便存儲…

【微服務】Ocelot微服務網關

目錄 一、目的 二、Ocelot介紹 三、.Net中使用Ocelot搭建網關服務 3.1 搭建網關Ocelot步驟 3.1.1、創建Net7 WebApi服務 3.1.2、Nuget引入-Ocelot程序包(版本:19.0.2) 3.1.3、配置中間件和IOC注冊 3.1.4 配置文件編輯Ocelot網關配置信…

零基礎入門:用按鍵精靈實現視頻自動操作(附完整腳本)

摘要:本文手把手教你編寫視頻平臺的自動化腳本,涵蓋點擊、循環、防檢測等核心技巧,無需編程基礎,輕松實現自動播放/點贊/跳過廣告。(使用按鍵精靈2024版演示) 一、應用場景 自動化操作:自動跳過…

AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)

文章目錄AI(學習筆記第六課) 使用langchain進行AI開發 load documents(csv和文件夾)學習內容:1.load documents(csv)1.1 學習url1.2 load csv文件1.2.1 默認load1.2.2 csv文件內容1.2.2 執行csv文件的load1.3 Customizing the CSV parsing an…

企業運維實戰:Jenkins 依賴 JDK21 與應用需 JDK1.8 共存方案(含流水線配置)

前言:在企業運維中,“工具升級”與“業務兼容”的平衡始終是核心挑戰。近期我們遇到一個典型場景:Jenkins 升級到 2.450 版本后,強制要求 JDK21 運行環境;但開發團隊的應用程序因框架依賴,必須使用 JDK1.8 …