numpy模塊綜合使用

一、numpy模塊的綜合使用方法

# 使用矩陣的好處,矩陣對于python中列表,字典等數據類型一個一個拿來計算是會方便計算很多的,底層使用的是c語言
# 在數據分析和數據處理的時候也經常常用
import numpy as np
array = np.array([[1,2,3],[2,3,4]],np.uint8) #將原始的列表轉換為矩陣
print(array)
print(array.shape) # 形狀:幾行幾列
print(array.ndim) #維度
print(array.size)# 矩陣中的元素個數(范圍)
# 創建各種各樣的數組,將列表轉換為矩陣,打印出來和列表的區別就是沒有逗號分隔元素
# 定義創建的矩陣元素形式,一般來說位數越大就越精確,占用的內存空間也越大
a = np.array([2,3,4],dtype = np.int64)
a1 = np.array([2,3,4],dtype = np.int16)
b = np.array([2,3,4],dtype = np.int32)
c = np.array([2,3,4],dtype = np.float64)
d = np.array([2,3,4],dtype = np.float32)
print(a)
print(a1)
print(b)
print(c)
print(d)
# 定義二維矩陣
a = np.array([[1,2,3],[2,3,4]])
print(a)
# 直接生成全為0的矩陣,定義shape的時候一定要用幾行幾列括住
a = np.zeros((3,4),dtype = np.int16)
b = np.ones((3,4),dtype = np.int16)
c = np.empty((3,4)) # 空矩陣其實說是什么都沒有,其實是非常接近于0的一個矩陣
# 定義一個有序矩陣從10到19,步長是2
d = np.arange(10,20,2)
# 定義一個有序的矩陣,從0到11,還想生成其他形狀的reshape重新定義行列
e = np.arange(12).reshape((3,4))
# 自動生成num段從初始值,到結束值的矩陣
f = np.linspace(1,10,6).reshape(2,3)
print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
# 基礎運算
a = np.array([10,20,30,40])
b= np.arange(4)
c = a-b
d = a+b
# 將數組中的值都進行sin處理并且乘10
e = 10 * np.sin(a)
print(a,b)
print(c)
print(d)
print(b**2)
print(e)
# 判斷矩陣中的那些元素大于,小于,等于某個數 會返回布爾值
print(b)
print(b<3)
print(b==3)
# 運算二維矩陣,矩陣乘法是兩種形式,一種是對應位置相乘,一種是矩陣的乘法
a = np.array([[1,1],[2,3]],np.int16)
b = np.arange(4).reshape((2,2))
c = a*b
# 矩陣乘法方便快捷運算結果,圖片處理,機器學習
d = np.dot(a,b)
e = a.dot(b)
print(c)
print(d)
print(e)
# 創建隨機生成的矩陣
# 創建2行4列的矩陣(每一個元素都是0到1之間的隨機數)
a = np.random.random((2,4))
print(a)
print(np.sum(a,axis=1)) #代表在行數中求和
print(np.min(a,axis=0))  #代表在列數中求最小值
print(np.max(a,axis=1))# 代表在行數中求最大值
# numpy基礎運算第二篇
# 最大值,最小值索引
A = np.arange(2,14).reshape((3,4))
print(A)
print(A.argmin())
print(np.argmin(A))
print(A.argmax())
print(np.argmax(A))
# 矩陣平均值
print(np.mean(A,axis = 0)) #按列求平均值
print(np.average(A,axis = 1))#按行求平均值
print(A.mean())
# 這樣不可以
# print(A.average())
print(np.median(A)) #中位數
# 累計求和
print(np.cumsum(A))
# 累差:每相鄰兩個數的累積差值
print(np.diff(A))
# 找出非零的數:會給出兩個矩陣分別一個代表行號,一個代表列號,組合起來就是第幾行第幾列的數是非零的
print(np.nonzero(A))
# 排序:按行排列,每一行從小到大排列
A = np.arange(14,2,-1).reshape(3,4)
print(np.sort(A))
# 矩陣的轉置
print(np.transpose(A))
print(A.T)
# 矩陣乘以矩陣的轉置
print(A.dot(A.T))
# 給定最小值和最大值,矩陣中所以大于最大值都變成最大值,所有的最小值都變成最小值,位于中間的數不變
print(np.clip(A,5,9))
# 矩陣的索引
A = np.arange(3,15)
print(A)
print(A[3])
# 打印二維矩陣,其實第一個索引就是行
A = np.arange(3,15).reshape(3,4)
print(A)print(A[2])
# 打印第一行第一列的值
print(A[1][1])
print(A[1,1])
# 打印第三行所有值,要么不寫,要么缺省寫個冒號
print(A[2,:])
# 打印第三列的所有值
print(A[:,2])
# 打印第一行,第一列到第二列的數
print(A)
print(A[1,1:3])
# 使用for循環迭代數組的行
for row in A:print(row)
# 使用for循環迭代矩陣的列:使用矩陣的列使得原來的行變成列
for column in A.T:print(column)
# 將矩陣扁平化,將n維矩陣轉換為一維矩陣
print(A)
print(A.flat) #這里確實是將A進行扁平化了,但是返回的是一個迭代器對象,直接打印會打印出迭代器的地址
print(A.flatten()) # 打印出扁平化的值
# 扁平化之后一個一個打印出每一個項,迭代器是支持迭代的
for item in A.flat:print(item)
# 合并array  直接生成矩陣會方便以后進行矩陣的轉換
# 如果不這樣做的話,會導致這樣的情況出現
A = np.array([1,1,1])
print(A.T) #實際上我想輸出[[1],這種縱向矩陣但是只將序列轉置會輸出[1,1,1]# [1],# [1]]
# 而且當我想查看A的類型的時候,會返回一個元組,元組中只有一個元素就是元素的個數(3,)
print(A.shape)
# 直接生成矩陣就可以避免這種情況
A = np.matrix([1,1,1])
B = np.matrix([2,2,2])
# 查看矩陣的類型
print(A.shape)
print(B.shape)
# 生成逆矩陣
print(A.T)
print(B.T)
# 將定義的array進行上下合并
print(np.vstack((A,B))) # vertical stack 垂直堆棧
# 將定義的array進行左右合并
print(np.hstack((A,B)) )# horizontal stack 水平堆棧
# 可以對多個array進行合并
print(np.vstack((A,B,B,A)))
print(np.vstack((A,B,B,A)).shape)
print(np.hstack((A,B,B,A)))
print(np.hstack((A,B,B,A)).shape)
# 合并,自己選擇水平或者是豎直
print(np.concatenate((A,B,B,A),axis=0)) #縱向
print(np.concatenate((A,B,B,A),axis=1)) # 橫向
# numpy array分割
A = np.arange(12).reshape((3,4))
# 分塊矩陣:split(矩陣,幾塊,行還是列)
# 這個零一真的很混亂axis的,所以我建議別記錄了,需要用的時候自己試試就好了
# 如果一定要理解的話就是1是左右分割,他是豎著的,想象豎著切矩陣就是左右分塊的
print(A)
print(np.split(A,2,axis = 1))
print(np.split(A,3,axis = 0))
# 如果想使用不等分割,需要使用array_split方法,使用split方法會報錯
print(np.array_split(A,3,axis = 1))
# 分割也可以進行一個簡便的方法:
# 縱向分割:是上下分割
print(np.vsplit(A,3))
# 橫向分割:是左右分割
print(np.hsplit(A,2))
# numpy array的賦值
# 賦值和淺拷貝
# 賦值會將被賦值的矩陣和原矩陣關聯起來
A = np.array([[1,2,3],[4,5,6]])
B = A
C = B
A[0][1] = 9
print(A)
print(B)
print(C)
A[1,1:3] = [22,33]
print(A)
print(B)
print(C)
# 淺拷貝會直接將值拷貝過來不會將矩陣關聯起來
D = A.copy()
A[1][2] = 3
print(A)
print(D) #D還是原先沒有改變是的A矩陣

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

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

相關文章

【github分享】開發者學習路線圖

地址&#xff1a;GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. 介紹&#xff1a;涵蓋了所有領域的開發者路線圖&#xff0c;前端、后端、運維、全棧、編程語言、AI等。…

《Linux命令行大全(第2版)》PDF下載

內容簡介 本書對Linux命令行進行詳細的介紹&#xff0c;全書內容包括4個部分&#xff0c;第一部分由Shell的介紹開啟命令行基礎知識的學習之旅&#xff1b;第二部分講述配置文件的編輯&#xff0c;如何通過命令行控制計算機&#xff1b;第三部分探討常見的任務與必備工具&…

[Java實戰]Spring Boot 解決跨域問題(十四)

[Java實戰]Spring Boot 解決跨域問題&#xff08;十四&#xff09; 一、CORS 問題背景 什么是跨域問題&#xff1f; 當瀏覽器通過 JavaScript 發起跨域請求&#xff08;不同協議、域名、端口&#xff09;時&#xff0c;會觸發同源策略限制&#xff0c;導致請求被攔截。 示例場…

MyBatis快速入門——實操

默認&#xff1a;電腦搭建好了Maven環境 本次入門實驗使用的idea版本&#xff1a;ideaU2022.1 目錄 一&#xff1a;前期準備工作 1. 創建一個springboot工程 2. Maven環境配置 3. 在mysql數據庫中創建一個user表 4. 編寫實體類User 二&#xff1a; 引入MyBatis的相關依賴…

IPLOOK超輕量核心網,助力5G專網和MEC邊緣快速落地

隨著5G深入千行百業&#xff0c;行業客戶對核心網的靈活性、可控性和部署效率提出了更高要求。IPLOOK面向數字化轉型需求&#xff0c;推出了超輕量級核心網解決方案&#xff0c;具備體積小、資源占用少、部署靈活、易于維護等特性&#xff0c;廣泛適用于專網、實驗室、MEC邊緣云…

【前端】【HTML】【總復習】一萬六千字詳解HTML 知識體系

?? HTML 知識體系 一、HTML 基礎入門 1. HTML 簡介與作用 HTML(HyperText Markup Language,超文本標記語言)是構建網頁的基礎語言。它的核心作用是: 定義網頁內容的結構(標題、段落、圖片、表格等)提供語義化標簽,幫助搜索引擎與輔助設備理解頁面內容配合 CSS 實現…

VC++ 獲取CPU信息的兩種方法

文章目錄 方法一&#xff1a;使用 Windows API GetSystemInfo 和 GetNativeSystemInfo (基本信息)編譯和運行代碼解釋 方法二&#xff1a;使用 __cpuid&#xff08;CPU序列號、特性等&#xff09;代碼解釋&#xff1a; 開發過程中需要使用 VC獲取電腦CPU信息&#xff0c;先總結…

Docker Compose 的歷史和發展

這張圖表展示了Docker Compose從V1到V2的演變過程&#xff0c;并解釋了不同版本的Compose文件格式及其支持情況。以下是對圖表的詳細講解&#xff1a; Compose V1 No longer supported: Compose V1已經不再支持。Compose file format 3.x: 使用了版本3.x的Compose文件格式。 …

24、TypeScript:預言家之書——React 19 類型系統

一、預言家的本質 "TypeScript是魔法世界的預言家之書&#xff0c;用靜態類型編織代碼的命運軌跡&#xff01;" 霍格沃茨符文研究院的巫師揮動魔杖&#xff0c;類型注解與泛型的星軌在空中交織成防護矩陣。 ——基于《國際魔法聯合會》第12號類型協議&#xff0c;Ty…

(2025,AR,NAR,GAN,Diffusion,模型對比,數據集,評估指標,性能對比)文本到圖像生成和編輯:綜述

【本文為我在去年完成的綜述&#xff0c;因某些原因未能及時投稿&#xff0c;但本文仍能為想要全面了解文本到圖像的生成和編輯的學習者提供可靠的參考。目前本文已投稿 ACM Computing Surveys。 完整內容可在如下鏈接獲取&#xff0c;或在 Q 群群文件獲取。 中文版為論文初稿&…

MATLAB的cvpartition函數用法

1. 函數作用 cvpartition 將數據集劃分為訓練集和測試集&#xff0c;支持多種交叉驗證方法&#xff0c;包括&#xff1a; Hold-Out驗證&#xff1a;單次劃分&#xff08;如70%訓練&#xff0c;30%測試&#xff09;K折交叉驗證&#xff1a;數據分為K個子集&#xff0c;依次用其…

Java【網絡原理】(5)深入淺出HTTPS:狀態碼與SSL/TLS加密全解析

目錄 1.前言 2.正文 2.1狀態碼 2.2HTTP與HTTPS的關系 2.3SSL協議 2.3.1對稱加密 2.3.2非對稱加密 2.3.3中間人攻擊 2.3.4校驗機制 2.3.4.1證書 2.3.4.2數字簽名 1. 數字簽名的生成過程 2. 數字簽名的驗證過程 2.4TLS協議&#xff08;握手過程&#xff09; 3.小結…

代碼隨想錄算法訓練營第三十七天

LeetCode題目: 300. 最長遞增子序列674. 最長連續遞增序列718. 最長重復子數組2918. 數組的最小相等和(每日一題) 其他: 今日總結 往期打卡 300. 最長遞增子序列 跳轉: 300. 最長遞增子序列 學習: 代碼隨想錄公開講解 問題: 給你一個整數數組 nums &#xff0c;找到其中最長…

【Java ee初階】網絡原理

TCP協議 1.確認應答 實現可靠傳輸的核心機制 2.超時重傳 實現可靠傳輸的核心機制 3.連接管理 網絡部分最高頻的面試題 4.滑動窗口 提高傳輸效率的機制 5.流量控制 依據接收方的處理能力&#xff0c;限制發送方的發送速度。 6.擁塞控制 依據傳輸鏈路的處理能力&#xff0c…

B站取關腳本

個人的賬號可能被盜了&#xff0c;發現關注數量蹦到3000多&#xff0c;然后b站沒有一鍵取關的按鈕&#xff0c;并且對api的訪問有速度限制&#xff0c;然后網上的腳本很多都已經失效了&#xff0c;所以自己稍微寫個簡陋的 測試時間: 2025.05.11 使用步驟: 進入b站的關注頁面…

PyGame游戲開發(含源碼+演示視頻+開結題報告+設計文檔)

前言&#xff1a; 大二小學期python課上基于pygame做的一個游戲小demo&#xff0c;當時老師花了一天講解了下python基礎語法后&#xff08;也是整個大學四年唯一學習python的時間&#xff09;&#xff0c;便讓我們自學網課一周然后交項目&#xff0c;所以做的非常倉促&#xff…

使用 React 實現語音識別并轉換功能

在現代 Web 開發中&#xff0c;語音識別技術的應用越來越廣泛。它為用戶提供了更加便捷、自然的交互方式&#xff0c;例如語音輸入、語音指令等。本文將介紹如何使用 React 實現一個簡單的語音識別并轉換的功能。 功能概述 我們要實現的功能是一個語音識別測試頁面&#xff0…

C++ 雙峰高斯函數擬合

C 雙峰高斯函數擬合 一維高斯函數二維高斯函數多維高斯函數一維雙峰高斯函數代碼實現 二維雙峰高斯函數代碼實現 多維多峰高斯函數 在數據分析與清洗中經常遇到這樣的數據&#xff1a;數據不僅僅向單個中心靠攏&#xff0c;而是類似分段的向兩個甚至多個中心靠攏。數據向單個中…

【RP2350】香瓜樹莓派RP2350之LED

本文最后修改時間&#xff1a;2025年05月10日 01:57 一、本節簡介 本節以樹莓派pico2開發板為例&#xff0c;舉例如何寫一個LED驅動加進工程里。 二、實驗平臺 1、硬件平臺 1&#xff09;樹莓派pico2開發板 ①樹莓派pico2開發板&#xff08;作為仿真器&#xff09; ②micr…

機器人運動控制原理淺析-UC Berkeley超視覺模態模型

加州伯克利發布的超視覺多感知模態融合(FuSe, Fuse Heterogeneous Sensory Data)模型&#xff0c;基于視覺、觸覺、聽覺、本體及語言等模態&#xff0c;利用自然語言跨模態對齊(Cross-Modal Grounding)優調視覺語言動作等通用模型&#xff0c;提高模型任務成功率。 總體框架 …