人工智能系列-numpy(三)

🌈個人主頁:羽晨同學?

💫個人格言:“成為自己未來的主人~”???

副本和視圖

副本

副本是一個數據的完整的拷貝,如果我們對副本進行修改,它不會影響到原始數據,物理內存不再同一位置。副本一般發生在Python序列的切片操作,調用deepCopy()函數。調用ndarray的copy()函數產生一個副本。

視圖

視圖是數據的一個別稱或者引用,通過該別稱或引用亦便可訪問,操作原有數據,但原有數據不會產生拷貝,如果我們對視圖進行修改,它會影響到原始數據,物理內存在同一位置。

視圖一般發生在numpy的切片操作返回原數據的視圖,調用ndarray的view()函數產生一個視圖。

賦值

簡單的賦值不會創建數組對象的副本。相反,它使用原始數組的相同id()來訪問它,id()返回Python對象的通用標識符,類似于C中的指針。

此外,一個數組的任何變化都反映在另一個數組上。例如:一個數組的形狀改變也會改變另一個數組的形狀。

import numpy as np
a=np.arange(6)
print('我們的數組是:')
print(a)
print('調用id()函數:')
print(id(a))
print('a復制給b')
b=a
print(b)
print('b具有的id()')
print(id(b))
print('修改b的形狀')
b.shape=3,2
print(b)
print('a的形狀也改變了')
print(a)

視圖或淺拷貝

ndarray.view()方會創建一個新的數組對象,該方法創建的新數組的維數變化不會改變原始數據的維數

import numpy as np
a=np.arange(6).reshape(2,3)
print('數組a: ')
print(a)
print('創建a的視圖: ')
b=a.view()
print(b)
print('兩個數組的id()不相同:')
print('a的id()')
print(id(a))
print('b的id()')
print(id(b))
b.shape=3,2
print('b的形狀:')
print(b)
print('a的形狀:')
print(a)

而使用切片創建視圖修改數據會影響到原始數組:

import numpy as nparr=np.arange(12)
print('我們的數組: ')
print(arr)
print('創建切片:')
a=arr[3:]
b=arr[3:]
a[1]=123
b[2]=234
print(arr)
print(id(a))
print(id(b))
print(id(arr))

?副本或深拷貝

ndarray.copy()函數創建一個副本,對副本數據進行修改,不會影響到原始數據,它們物理內存不在同一位置。

import numpy as np
a=np.array([[10,10],[2,3],[4,5]])
print('數組 a')
print(a)
print('創建a的深層副本:')
b=a.copy()
print('數組b')
print(b)
print('我們能夠寫入b來寫入a嗎?')
print(b is a)
print('修改b的內容:')
b[0,0]=100
print('修改后的數組b:')
print(b)
print('a保持不變:')
print(a)

?

NumPy Matplotlib

Matplotlib是Python的繪圖庫,它可與NumPy一起使用,提供了一種有效的MatLab開源替代方案。

舉一個畫一元線性方程的簡單例子:

import numpy as np
from matplotlib import pyplot as pltx=np.arange(1,11)
y=2*x+5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()

import numpy as np
from matplotlib import pyplot as pltx=np.arange(1,11)
y=2*x+5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y,marker="o")
plt.show()

from matplotlib import pyplot as plt
x=[5,8,10]
y=[12,16,6]
x2=[6,9,11]
y2=[6,15,7]
plt.bar(x,y,align='center')
plt.bar(x2,y2,color='g',align='center')
plt.title("bar graph")
plt.ylabel("Y axis")
plt.xlabel("X axis")
plt.show()

from matplotlib import pyplot as plt
import numpy as np
a=np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
plt.hist(a,bins=[0,20,40,60,80,100])
plt.title("historgram")
plt.show()

?

?


import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2*np.pi,400)
y=np.sin(x**2)
fig,ax=plt.subplots()
ax.plot(x,y)
ax.set_title("Simple plot")f,(ax1,ax2)=plt.subplots(1,2,sharey=True)
ax1.plot(x,y)
ax1.set_title("sharing Y axis")
ax2.scatter(x,y)
fig,axs=plt.subplots(2,2,
subplot_kw=dict(projection="polar"))
axs[0,0].plot(x,y)
axs[1,1].scatter(x,y)
plt.show()

?

?

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

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

相關文章

MySQL——statement對象詳解

JDBC中的statement對象用于向數據庫發送SQL語句,想完成對數據庫的增刪改查,只需要通過這個對象向數據庫發送增刪改查語句即可。 Statement對象的executeUpdate方法,用于向數據庫發送增、刪、改的sql語句,executeUpdate執行完成后…

Vue前端打包

關于NGINX 介紹:Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。其特點是占有內存少,并發能力強,在各大型互聯網公司都有非常廣泛的使用。 NGiMx 官網:https://nginx.org/ conf 配置文件目錄 html靜態資源文件目錄 lo…

華為OD面試分享18

2024年OD統一考試(D卷)完整題庫:華為OD機試2024年最新題庫(Python、JAVA、C++合集) 正文開始 7月3日上午一面 問項目 String變量直接引用和new一個String變量的區別 談談多線程 canel的工作原理 MVC的執行過程 redis怎么用的 編程題-網絡連通區域數量 7月3日晚上二面 編程…

html+js+css在線倒計時

代碼在圖片后面 點贊加關注 謝謝大佬照顧&#x1f61c; 圖例 時間到前 時間到后 源代碼 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width,…

10.09面試題目記錄

艾融軟件 - 線上面試題 排序算法的時間復雜度 O(n^2&#xff09;&#xff1a;冒泡&#xff0c;選擇&#xff0c;插入 O(logn&#xff09;&#xff1a;折半插入排序 O(nlogn)&#xff1a;希爾&#xff0c;歸并&#xff0c;快速&#xff0c;堆 O(nk)&#xff1a;桶&#xff0c;…

ListView 的簡單使用及 ArrayAdapter 中參數詳解

&#x1f604;作者簡介&#xff1a; 小曾同學.com,一個致力于測試開發的博主??&#xff0c;主要職責&#xff1a;測試開發、CI/CD&#xff0c;日常還會涉及Android開發工作。 如果文章知識點有錯誤的地方&#xff0c;還請大家指正&#xff0c;讓我們一起學習&#xff0c;一起…

【ARMv8/v9 GIC 系列 5.2 -- GIC 分組介紹:Group 0 |Group 1| Non-Secure Group 1】

請閱讀【ARM GICv3/v4 實戰學習 】 文章目錄 GIC Interrupt grouping中斷分組配置寄存器GIC 中斷分組介紹Group 0(安全組0)Group 1(安全組1)Non-Secure Group 1(非安全組1)總結及例子GIC Interrupt grouping ARM GICv3 通過中斷分組機制,與ARMv8異常模型和安全模型進行…

一文讓你徹底搞懂什么是CDN

一、引言 在當今互聯網時代&#xff0c;網站的加載速度和穩定性是用戶體驗的關鍵因素之一。而CDN&#xff08;Content Delivery Network&#xff0c;內容分發網絡&#xff09;作為提升網站性能的重要技術手段&#xff0c;受到了廣泛的關注和應用。本篇博客將深入探討CDN的工作…

實現原理:遠程過程調用(RPC)

Hi~&#xff01;這里是奮斗的小羊&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f4a5;&#x1f4a5;個人主頁&#xff1a;奮斗的小羊 &#x1f4a5;&#x1f4a5;所屬專欄&#xff1a;C語言 &#x1f680;本系列文章為個人學習…

墨烯的C語言技術棧-C語言基礎-006

六.常量 C語言的常量為 字面常量 const修飾的常變量 #define定義的 枚舉常量 int main() { // 四個都是字面常量 30; 3.14; "w"; // 字符常量 "abc"; // const修飾的常變量 const int a 10; // 在C語言中,const修飾的a,本質是變量,但不能直…

圖像的灰度直方圖

先來認識一下灰度直方圖&#xff0c;灰度直方圖是圖像灰度級的函數&#xff0c;用來描述每個灰度級在圖像矩陣中的像素個數或者占有率。接下來使用程序實現直方圖&#xff1a; 首先導入所需的程序包&#xff1a; In [ ]: import cv2 import numpy as np import matplotlib…

PCA算法降維代碼示例

這段代碼將數據進行PCA降維至3維&#xff0c;并繪制一個三維散點圖&#xff0c;展示降維后的前3個主成分。 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.decomposition import PCA from sklearn.preprocessing import StandardS…

JAVA 發送短信信息工具類(騰訊云)

發送短信信息工具類 import cn.hutool.core.collection.CollUtil; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.sms.v20210111.SmsClient; import com.tencentcloudapi…

pyecharts可視化案例大全(21~30)

pyecharts可視化案例大全(21~30) 二十一、直方圖帶標記線(最大值,平均值等)二十二、折線圖帶自定義標記點二十三、折線圖帶百分號顯示二十四、象形圖自定義圖形二十五、水球圖自定義圖形二十六、GEO添加自定義坐標二十七、GEO 帶漣漪效果散點圖二十八、GEO熱力圖二十九、GEO…

關于一致性哈希

什么是一致性哈希&#xff1f; 定義和基本原理 一致性哈希&#xff08;Consistent Hashing&#xff09;是一種哈希算法&#xff0c;廣泛應用于分布式系統中&#xff0c;主要用于解決動態節點變化&#xff08;如節點增加或減少&#xff09;時的數據分布和負載均衡問題。 定義…

基于Java中的SSM框架實現野生動物公益保護系統項目【項目源碼+論文說明】計算機畢業設計

基于Java中的SSM框架實現野生動物公益保護系統演示 摘要 本系統按照網站系統設計的基本流程&#xff0c;遵循系統開發生命周期法和結構化方法&#xff0c;基于Java語言設計并實現了野生動物公益保護系統。該系統基于瀏覽器/服務器模式&#xff0c;采用JSP技術&#xff0c;后臺…

MySQL之備份與恢復(六)

備份與恢復 文件系統快照 先決條件和配置 創建一個快照的消耗幾乎微不足道&#xff0c;但還是需要確保系統配置可以讓你獲取在備份瞬間的所有需要的文件的一致性副本。首先&#xff0c;確保系統滿足下面這些條件。 1.所有的InnoDB文件(InnoDB的表空間文件和InnoDB的事務日志…

C++學習第十三天——stack/queue的使用及底層剖析雙端隊列容器適配器

? 少年的旅途應是星辰大海 &#x1f30f; &#x1f4c3;個人主頁&#xff1a;island1314 &#x1f525;個人專欄&#xff1a;C學習 &#x1f680; 歡迎關注&#xff1a;&#x1f44d;點贊 &#x1f442;&am…

學會python——用python制作一個繪圖板(python實例十九)

目錄 1.認識Python 2.環境與工具 2.1 python環境 2.2 Visual Studio Code編譯 3.制作一個繪圖板 3.1 代碼構思 3.2 代碼實例 3.3 運行結果 4.總結 1.認識Python Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 的設計具有很強的可…

昇思25天學習打卡營第12天| 基于MindNLP+MusicGen生成自己的個性化音樂

之前都是看圖文類的東西&#xff0c;今天體驗一點不一樣的。來點聽力的內容。 mindspore有音樂生成模型MusicGen&#xff0c;MusicGen支持兩種生成模式&#xff1a;貪心&#xff08;greedy&#xff09;和采樣&#xff08;sampling&#xff09;。在實際執行過程中&#xff0c;采…