Python學習-Numpy-1

學習參考鏈接:

Numpy的介紹和安裝和性能對比_嗶哩嗶哩_bilibili

Numpy相對List的優勢和特點

1、Numpy的數據結構是array數組

2、相較List的性能更好,并且包含大量的便捷的函數,以及數組中元數據的信息

3、array的數據類型必須一致,為int或者float,因此性能更高

1、創建數組

import numpy as np#創建一維數組
x=np.array([1,2,3,4,5,6])#創建二維數組
y=np.array([[1,2,3],[4,5,6]
])
print("x=",x)
print("y=",y)

x= [1 2 3 4 5 6]
y= [[1 2 3]
?[4 5 6]]?


2、array的屬性

import numpy as np#創建二維數組
y=np.array([[1,2,3],[4,5,6]
])# 數組形狀
print("y.shape",y.shape)# 數組維度
print("y.ndim",y.ndim)# 所有數據的數目
print("y.size",y.size)# 數據的類型
print("y.dtype",y.dtype)

y.shape (2, 3)
y.ndim 2
y.size 6
y.dtype int32


3、創建array的便捷函數

?3.1 np.arange

import numpy as np#使用arrange創建數組序列
#arange(start,stop,step,dtype=None),左閉右開x=np.arange(12)
y=np.arange(2,10,2)
print("x=",x)
print("y=",y)

x= [ 0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 10 11]
y= [2 4 6 8]

?3.2 np.ones

import numpy as np#使用ones創建全為1的數組序列
#ones(shape,dtype=None,order='C')x=np.ones(12)
y=np.ones((2,3))
print("x=",x)
print("y=",y)

x= [1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
y= [[1. 1. 1.]
?[1. 1. 1.]]

?3.3 np.ones_like

import numpy as np#使用ones_like創建全為0的形狀相同的數組序列
#ones_like(x,dtype=None)
x=np.arange(12).reshape(3,4)y=np.ones_like(x)
print("x=",x)
print("y=",y)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[1 1 1 1]
?[1 1 1 1]
?[1 1 1 1]]

?3.4 np.empty

empty的數據是未初始化的數據,里面的值是隨機值不能直接使用

import numpy as np#使用empty創建全為0的數組序列
#empty(shape,dtype=None,order='C')
x=np.empty(10)
y=np.empty((2,5))print("x=",x)
print("y=",y)

x= [6.23042070e-307 1.89146896e-307 1.37961302e-306 6.23053614e-307
?1.60218627e-306 6.23061763e-307 6.23059386e-307 6.23058028e-307
?8.90100844e-307 2.39277352e-203]
y= [[-5.74929044e-186 -3.41963150e+202 ?8.38577217e-253 -4.80176796e+207
? -8.30082508e+049]
?[ 5.69602577e-219 ?2.08987787e-290 ?5.64286538e+290 ?2.34477072e+222
? -1.62584672e+000]]

Process finished with exit code 0
?

?3.5 np.empty_like

import numpy as np#使用empty_like創建全為1的形狀相同的數組序列
#empty_like(x,dtype=None)
x=np.arange(12).reshape(3,4)y=np.empty_like(x)
print("x=",x)
print("y=",y)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[0 0 0 0]
?[0 0 0 0]
?[0 0 0 0]]

?3.6 np.full

import numpy as np#使用full創建指定值的數組序列
#full(shape,fill_vaule,dtype=None,order='C')
x=np.full(5,10)
y=np.full((2,5),10)print("x=",x)
print("y=",y)

x= [10 10 10 10 10]
y= [[10 10 10 10 10]
?[10 10 10 10 10]]

?3.7?np.full_like

import numpy as np#使用full_like創建填充指定值的形狀相同的數組序列
#full_like(x,fill_vaule,dtype=None)
x=np.arange(12).reshape(3,4)y=np.full_like(x,666)
print("x=",x)
print("y=",y)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[666 666 666 666]
?[666 666 666 666]
?[666 666 666 666]]

?3.8 np.random.randn

import numpy as np#使用rand創建隨機數組序列
#randn(d0,d1,d2...)
x=np.random.randn(4)
y=np.random.randn(4,3)
z=np.random.randn(4,3,2)print("x=",x)
print("y=",y)
print("z=",z)

x= [-0.6814137 ? 2.58645822 -0.32107098 -1.16734569]
y= [[-0.12104364 -0.60353561 -0.70747402]
?[-0.78172178 ?0.56876222 -0.89172026]
?[-0.35139011 -0.53920652 ?0.66813472]
?[ 0.6570334 ?-0.59396372 -2.36066397]]
z= [[[ 0.18886269 ?0.40312599]
? [-0.15651529 -0.28551847]
? [ 0.41414574 ?1.76023497]]

?[[-0.79363865 ?0.62441301]
? [ 2.09764425 ?2.08595285]
? [-0.77915632 ?0.8259647 ]]

?[[ 0.31214999 ?1.54711407]
? [ 0.90644711 ?0.76644429]
? [-1.59445626 ?1.29589803]]

?[[ 0.97082177 -1.52600754]
? [ 1.4742554 ? 0.07321613]
? [-0.1599697 ? 0.19982069]]]

?4、array用于操作及函數

4.1 shape?

import numpy as npx=np.arange(12).reshape(3,4)
print(x.shape)

?(3, 4)

?4.2 數組+1

與list的區別在于是對數組內的所有的數字同時操作,而list對所有的數字同時操作則需要用for循環實現。?

import numpy as np#array+1是對數組內的所有的元素進行加1
x=np.arange(12).reshape(3,4)
y=x+1
print("x=",x)
print("y=",y)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[ 1 ?2 ?3 ?4]
?[ 5 ?6 ?7 ?8]
?[ 9 10 11 12]]

??4.3 數組*3

import numpy as np#array*3是對數組內的所有的元素進行*3
x=np.arange(12).reshape(3,4)
y=x*3
print("x=",x)
print("y=",y)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[ 0 ?3 ?6 ?9]
?[12 15 18 21]
?[24 27 30 33]]

??4.4 sin(數組)

import numpy as np#np.sin(array)是對數組內的所有的元素進行sin
x=np.arange(12).reshape(3,4)
y=np.sin(x)
print("x=",x)
print("y=",y)

?x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[ 0. ? ? ? ? ?0.84147098 ?0.90929743 ?0.14112001]
?[-0.7568025 ?-0.95892427 -0.2794155 ? 0.6569866 ]
?[ 0.98935825 ?0.41211849 -0.54402111 -0.99999021]]

?4.5 array間的加減操作

import numpy as np#np.sin(array)是對數組內的所有的元素進行sin
x=np.arange(12).reshape(3,4)
y=np.random.randint(1,10,(3,4))print("x=",x)
print("y=",y)z=x+y
w=x-y
print("z=",z)
print("w=",w)

x= [[ 0 ?1 ?2 ?3]
?[ 4 ?5 ?6 ?7]
?[ 8 ?9 10 11]]
y= [[3 6 2 1]
?[8 2 7 1]
?[6 7 5 9]]
z= [[ 3 ?7 ?4 ?4]
?[12 ?7 13 ?8]
?[14 16 15 20]]
w= [[-3 -5 ?0 ?2]
?[-4 ?3 -1 ?6]
?[ 2 ?2 ?5 ?2]]

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

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

相關文章

實驗名稱:TCP 連接管理

目錄 實驗目的: 實驗原理: 實驗步驟: 1) 啟動WireShark,設置抓包狀態 2) 訪問指定服務器 ,通過Wireshark抓取通信數據報文 3) 分析TCP連接建立的三次握手和連接釋放的四次握手過程 原始數據記錄: 實…

微信小程序生命周期揭秘:從啟動到消亡的全過程剖析【附代碼】

微信小程序生命周期揭秘:從啟動到消亡的全過程剖析 一、小程序生命周期概覽核心生命周期函數 二、深入理解生命周期回調2.1 onLoad: 首次亮相的準備2.2 onShow: 重登舞臺的瞬間2.3 onReady: 舞臺就緒,靜待表演2.4 onHide & onUnload: 謹慎離場&#…

【數據結構陳越版筆記】第1章 概述【習題】

1. 碎碎念 我這答案做的可能不對,如果不對,歡迎大家指出錯誤 2. 答案 1.1 判斷正誤 (1) N ( log N ) 2 N(\text{log}N)^{2} N(logN)2是 O ( N 2 ) O(N^{2}) O(N2)的。 (2) N 2 ( log N ) 2 N^{2}(\text…

藍橋杯備戰12.階乘

P5739 【深基7.例7】計算階乘 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 遞歸 #include<bits/stdc.h> #define endl \n #define int long long using namespace std; const int N 2e710,M 1e310; double a[N]; int jie(int n) {if(n1)return 1;else return n*ji…

HTML/CSS3

1.CSS CSS的作用在于在HTML的基礎上(決定網頁的內容和結構)對網頁進行排版布局 對網頁中的元素提供樣式 使得網頁顯得更加精美CSS全稱是cascading style sheets 即層疊樣式表CSS樣式的書寫格式&#xff1a;樣式名: 樣式值 例如&#xff1a;color: red建議:之后進行空格 CSS樣式…

AXI Interconnect IP核的連接模式簡介

AXI Interconnect IP核內部包含一個 Crossbar IP核&#xff0c;用于在 Slave Interfaces&#xff08;SI&#xff09;和 Master Interfaces&#xff08;MI&#xff09;之間路由傳輸。在連接 SI 或 MI 到 Crossbar 的每條路徑上&#xff0c;可以選擇性地添加一系列 AXI Infrastru…

2024年安全員C證報名條件

安全員c證&#xff0c;又稱建筑施工企業三類人員c證&#xff0c;持證者一般是建筑施工企業專職安全生產管理的專業人員。安全員c證報名條件是: 1、職業道德良好&#xff0c;身體健康&#xff0c;年齡不超過60周歲(法定代表人除外); 2、具有中專及以上文化程度或初級及以上技術…

WMS系統批次管理概述

為了提高倉庫運作效率&#xff0c;降低庫存成本&#xff0c;越來越多的企業開始引入WMS倉庫管理系統&#xff0c;WMS系統批次管理作為其核心功能之一&#xff0c;對于實現精細化、智能化的倉儲管理具有重要意義。 二、WMS系統批次管理概述 WMS系統批次管理是指通過對倉庫中的貨…

rust調用SQLite實例

rusqlite庫介紹 Rusqlite是一個用Rust編寫的SQLite庫&#xff0c;它提供了對SQLite數據庫的操作功能。Rusqlite的設計目標是提供一個簡潔易用的API&#xff0c;以便于Rust程序員能夠方便地訪問和操作SQLite數據庫。 Rusqlite的主要特點包括&#xff1a; 遵循Rust的類型系統和…

SQL_hive的連續開窗函數

SQL三種排序&#xff08;開窗&#xff09;第幾名/前幾名/topN 1三種排序&#xff08;開窗&#xff09;第幾名/前幾名/topN思路 4種排序開窗函數 1三種排序&#xff08;開窗&#xff09;第幾名/前幾名/topN 求每個學生成績第二高的科目-排序思路 t2表&#xff1a;對每個學生 的…

基于Python的web漏洞挖掘掃描技術的實現與研究【附源碼,文檔】

博主介紹&#xff1a;?Java老徐、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;&…

Vue3 項目

創建 Vue3 項目的步驟如下&#xff1a; 安裝 Node.js Vue3 需要依賴 Node.js 環境&#xff0c;因此需要先安裝 Node.js。可以從官網下載 Node.js 的安裝包并安裝&#xff0c;也可以使用包管理器安裝&#xff0c;例如在 Ubuntu 上可以使用以下命令安裝&#xff1a; sudo apt-get…

C語言筆記13

字符數組與字符串常量區別 #include <stdio.h> int main() {char str1[] "hello bit.";char str2[] "hello bit.";char *str3 "hello bit.";char *str4 "hello bit.";if(str1 str2)printf("str1 and str2 are same\n…

【生信技能樹】拿到表達矩陣之后,如何使用ggplot2繪圖系統繪制箱線圖?

拿到表達矩陣之后&#xff0c;如何使用ggplot2繪圖系統繪制箱線圖&#xff1f; 目錄 預備知識 繪制箱線圖示例 預備知識 1.pivot_longer函數 pivot_longer 是tidyr包中的一個函數&#xff0c;用于將數據框&#xff08;data frame&#xff09;從寬格式轉換為長格式。在寬格…

一文掌握gRPC

文章目錄 1. gRPC簡介2. Http2.0協議3. 序列化-Protobuf4. gRPC開發實戰環境搭建5. gRPC的四種通信方式&#xff08;重點&#xff09;6. gRPC的代理方式7. SprintBoot整合gRPC 1. gRPC簡介 gRPC是由google開源的高性能的RPC框架。它是由google的Stubby這樣一個內部的RPC框架演…

reactJs動態執行js代碼

參考了這篇文章 js——new Function 一個可以隨時動態執行字符串js代碼的神器 因為一些原因&#xff0c;想要js代碼塊配置在數據庫中返回&#xff0c;例如時間&#xff0c;我需要用到第三方庫 moment。然后動態的得到startDate 和 endDate 配置在數據庫中的startDate值是$mom…

Java日志總結

開發中&#xff0c;日志記錄是不可或缺的一部分&#xff0c;應用日志的記錄主要用于&#xff1a;記錄操作軌跡數據、監控系統運行情況、系統故障定位問題&#xff0c;日志的重要性不言而喻&#xff0c;想要快速定位問題&#xff0c;日志分析是個重要的手段&#xff0c;Java也提…

JAVA 集合(單列集合)

集合框架 1.集合的特點 a.只能存儲引用數據類型的數據 b.長度可變 c.集合中有大量的方法,方便我們操作 2.分類: a.單列集合:一個元素就一個組成部分: list.add(“張三”) b.雙列集合:一個元素有兩部分構成: key 和 value map.put(“濤哥”,“金蓮”) -> key,value叫做鍵值…

Docker各版本的新特性

Docker 作為流行的容器化平臺&#xff0c;會定期發布新版本以引入新特性、改進和修復。根據提供的搜索結果&#xff0c;以下是一些 Docker 版本及其新特性的概覽&#xff1a; Docker Desktop v4.12 Containerd 的集成&#xff1a;更深入集成 containerd 以管理容器生命周期&a…

鎖和MVCC如何實現mysql的隔離級別

概述 MVCC解決讀的隔離性&#xff0c;加鎖解決寫的隔離性。 讀未提交 讀未提交&#xff0c;更新數據大概率使用的是獨享鎖吧。 讀已提交 在 Read Committed&#xff08;讀已提交&#xff09;隔離級別下&#xff0c;每次執行讀操作時都會生成一個新的 read view。這是因為在讀…