numpy庫的基礎知識

?一.numpy是什么 ?

Numpy 是 Python 中專門用于高性能數值計算的庫,其核心是一個功能強大的 n 維數組對象(ndarray),可以用來存儲和操作大規模的數字矩陣或張量數據。

numpy庫的作用:

核心功能:實現矩陣運算,為人工智能和數據分析提供基礎支持
應用場景:
人工智能領域(包括計算機視覺、自然語言處理等)
數據分析崗位(從海量數據中挖掘有效規律)
金融行業(量化交易、投行分析等)
數據分析與人工智能的關系?
包含關系:數據分析屬于人工智能崗位的組成部分
數據特征:
需要處理的數據量級通常在幾十萬到上百萬條
少量數據(如10-20條)不需要專門的分析工具

Numpy提高運行速度的優勢:底層架構:核心計算部分用C語言實現python層僅負責調用接口
速度對比:比純Python列表運算快數十倍執行效率超過Excel的數據處理
numpy底層與C語言的關系 :
技術架構:底層:C語言實現高性能計算上層:Python提供易用接口
設計優勢:兼顧開發效率(Python)和運行效率(C),避免直接編寫復雜的C代碼

二.numpy庫的安裝

1.精確安裝命令: 使用pip install numpy==1.23.5指定版本安裝,雙等號表示嚴格版本匹配

2.鏡像加速: 安裝時可添加國內鏡像地址提高下載速度(如清華源、阿里云源等)

3.安裝問題解決方法

  • 錯誤處理:
  • 當指定版本不存在時,pip會列出所有可用版本
  • 可根據Python版本選擇兼容的次新版本(如1.26.x不可用時選擇1.25.x)
  • 版本選擇原則:
  • Python 3.7建議安裝1.21.x版本
  • Python 3.8+可安裝1.22+版本
  • 主版本號(第一個數字)應保持一致

三.?Nunpy函數詳解

導入慣例: 使用import numpy as np作為標準導入方式

1.一維數組:

import numpy as np
list1 = [1,2,3,4,5] #python自帶的列表數據類型
print(list1)  #[1,2,3,4,5]
v = np.array(list1)
print(v)   #[1 2 3 4 5]

?2.二維數組[多個一維數組構成]

import numpy as np
list1 = [1,2,3,4,5]
m = np.array([list1,list1,list1])
print(m)
##[[1 2 3 4 5]
# [1 2 3 4 5]
#[1 2 3 4 5]]

3.三維數組[多個二維數組構成]

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z)

可視化特性:在調試模式下查看ndarray對象時,數值越大顯示顏色越紅,越小則顏色越深,便于快速識別極值。

由于三維數組無法直接在計算機上表示,所以以z[0]的形式展現。

z[0]訪問第一個二維矩陣切片,以此類推實現不同維度的數據提取,z[1]訪問第二個二維矩陣切片

?4.數組的基本屬性

1.shape 查詢數組的形狀

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.shape)#(3, 3, 5)

輸出結果(3,3,5)表示:3個二維矩陣,每個二維矩陣有3行,每行有5個元素

2.ndim ?查詢數組的維度

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.ndim)#3

3.size ?查詢數組中數據個數

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.size)#45

4.dtype 查詢數組中的元素類型

import numpy as np
list1 = [1,2,3,4,5]
z = np.array([[list1,list1,list1],[list1,list1,list1],[list1,list1,list1]])
print(z.dtype)#int32

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

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

四.數組的升維

a.reshape(newshape, order='C')

?a:要重新形狀的數組。
newshape:一個整數或者元組,用于定義新的形狀。
order:可選參數,指定元素在數組中的讀取順序。'C'意味著按行,'F'意味著按列,'A'意味著原順序,'K'意味著元素在內存中的出現順序。

import numpy as np
list1 = [1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8]#
v = np.array(list1)
r1 = v.reshape(4,4)
print(r1)
print(r1.ndim)
r2 = v.reshape(1,-1,2)
print(r2)
print(r2.ndim)
r3 = r1.reshape(2,2,4)
print(r3)
print(r3.ndim)

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

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

import numpy as np
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)#None
print(v)#[[1 2 3 4]# [1 2 3 4]#[1 2 3 4]#[1 2 3 4]]
print(v.ndim)#2

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

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

相關文章

在UniApp中防止頁面上下拖動的方法

1、pages.json中在某個頁面設置禁用彈性滾動的頁面 {"path": "pages/yourPage/yourPage","style": {"app-plus": {"bounce": "none"}} } 2、 pages.json中在所有頁面設置禁用彈性滾動的頁面 {"globalStyl…

LinkedList的模擬實現(雙向鏈表Java)

一:結構LinkedList的底層是雙向鏈表結構(鏈表后面介紹),由于鏈表沒有將元素存儲在連續的空間中,元素存儲在單獨的節點中,然后通過引用將節點連接起來了,因此在在任意位置插入或者刪除元素時,不需要搬移元素…

Shopify 知識點

📜 一、Liquid模板語言(核心基礎)語法結構 ? 輸出變量:{{ product.title }} 動態顯示商品標題。 ? 邏輯控制:{% if product.available %}…{% endif %} 條件渲染。 ? 循環遍歷:{% for item in collectio…

Web LLM 安全剖析:以間接提示注入為核心的攻擊案例與防御體系

文章目錄1 間接提示注入2 訓練數據中毒為什么會出現這種漏洞?3 泄露敏感訓練數據攻擊者如何通過提示注入獲取敏感數據?為什么會出現這種泄露?4 漏洞案例間接提示注入利用 LLM 中的不安全輸出處理5 防御 LLM 攻擊把LLM能訪問的API當成“公開接…

ElasticSearch:不停機更新索引類型(未驗證)

文章目錄**一、前期準備****1. 集群健康檢查****2. 備份數據****3. 監控系統準備****二、創建新索引并配置****1. 設計新索引映射****2. 創建讀寫別名****三、全量數據遷移****1. 執行初始 Reindex****2. 監控 Reindex 進度****四、增量數據同步****1. 方案選擇****五、雙寫切換…

python學智能算法(二十七)|SVM-拉格朗日函數求解上

【1】引言 前序學習進程中,我們已經掌握了支持向量機算法中,為尋找最佳分割超平面,如何用向量表達超平面方程,如何為超平面方程建立拉格朗日函數。 本篇文章的學習目標是:求解SVM拉格朗日函數。 【2】求解方法 【2.…

mac安裝node的步驟

適用于macOS 10.15及以上版本。 前提條件 macOS版本:確保系統為macOS 10.15(Catalina)或更高版本。可在“蘋果菜單 > 關于本機”查看。管理員權限:部分安裝可能需要管理員權限。網絡連接:需要聯網下載安裝包或工具…

【LeetCode數據結構】棧的應用——有效的括號問題詳解

🔥個人主頁:艾莉絲努力練劍 ?專欄傳送門:《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題 🍉學習方向:C/C方向 ??人生格言:為天地立心,為生民立命,為…

多尺度卷積模型:Inception塊

在GoogLeNet中,基本的卷積塊被稱為Inception塊(Inception block)。 使用窗口大小為11,33,551\times1,3\times3,5\times511,33,55的卷積層,從不同空間大小中提…

Android 默認圖庫播放視頻沒有自動循環功能,如何添加

Android 默認圖庫播放視頻沒有自動循環功能, 如何添加 按如下方式添加 開發云 - 一站式云服務平臺 .../apps/Gallery2/res/values-zh-rCN/strings.xml | 3 ++ packages/apps/Gallery2/res/values/strings.xml | 3 ++ .../com/android/gallery3d/app/MovieActivity…

7月21日總結

命令執行 RCE RCE(remote code execute):遠程命令執行或者代碼執行,我們平時說的rce,比如thinkPHP的 rce漏洞,即算代碼注入漏洞,也算rce漏洞,因為滲透的最終情況可以實現執行命令或…

Linux——自制shell命令行解釋器

文章目錄1.打印命令提示符2.獲取用戶輸入指令3.重定向分析4.命令行參數表,環境變量表,初始化5.命令解析6.命令執行6.1.創建子進程6.2 處理內建命令6.3 文件重定向7.源碼前言 在實現shell的時候我們先創建自己myshell目錄,在目錄中創建myshell.cc文件,因…

Boost庫智能指針boost::shared_ptr詳解和常用場景使用錯誤示例以及解決方法

1、Boost智能指針 —— boost::shared_ptr 詳解一、什么是 boost::shared_ptr boost::shared_ptr 是 Boost 庫中實現的一個智能指針模板類,用于管理動態分配的對象生命周期,采用引用計數機制。多個 shared_ptr 實例可以共享同一個對象的所有權&#xff0…

科學分析指南,如何快速找到并清理磁盤的無用文件

隨著時間的推移,系統中會積累大量的臨時文件、緩存文件、不再需要的安裝包或其他大型文件。磁盤清理可以刪除這些不必要的文件,從而釋放寶貴的磁盤空間。它無需安裝,插上 U 盤就能直接使用。只需勾選需要掃描的磁盤,點擊“開始分析…

Laravel 系統版本查看及artisan管理員密碼找回方法針對各個版本通用方法及原理-優雅草卓伊凡

Laravel 系統版本查看及artisan管理員密碼找回方法針對各個版本通用方法及原理-優雅草卓伊凡一、查看 Laravel 版本的方法優雅草蜻蜓T會議系統專業版 最近又有客戶要了,但是發現 密碼不對 管理員賬戶密碼不對,卓伊凡必須處理下,這里順便講解密…

針對大規模語言模型的上下文工程技術調研與總結(翻譯并摘要)

針對大規模語言模型的上下文工程技術調研與總結聲明摘要部分翻譯介紹部分翻譯相關工作部分翻譯并摘要為什么使用上下文工程(翻譯并摘要)基礎組件(翻譯并摘要)RAG(翻譯并摘要簡單介紹一下個人認為比較好的技術&#xff…

QT配置Quazip外部庫

1.下載QuaZip源碼網址:https://sourceforge.net/projects/quazip/  注:下載->解壓->打開.pro文件2.編譯QuaZip源碼2.1配置zlib注:QuaZip需zlib的支持,我們需要引用zlib找到本地安裝Qt目錄下zlib目錄:注&#x…

從C++開始的編程生活(4)——類的定義、訪問限定符、類域、類的實例化和this指針

前言 本系列文章承接C語言的學習,需要有C語言的基礎才能學會哦~ 第3篇主要講的是有關于C的類的定義、訪問限定符、類域、類的實例化和this指針。 C才起步,都很簡單呢! 目錄 前言 類 基本語法 訪問限定符 基本語法 類域 類的實例化 內…

AD域控制器虛擬化的安全加固最佳實踐

以下是AD域控制器虛擬化安全加固的7項核心實踐,結合最新Windows Server 2022特性與虛擬化環境需求:基礎架構強化? 采用靜態IP分配并確保所有域控節點DNS指向主DC(如192.168.1.10)? 虛擬機模板需預配置林/域功能級別為Windows Se…

java解析nc氣象數據

1.1pom.xml<dependency><groupId>edu.ucar</groupId><artifactId>netcdfAll</artifactId><version>5.4.1</version></dependency>1.2 netcdf使用/** param type 0 ,1, 2 wind 1 or 2 其他 0 .* return Map* */public Map i…