日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 科学计算库 Numpy(一)—— 概述

發布時間:2025/3/19 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 科学计算库 Numpy(一)—— 概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一 Numpy(Numerical Python)

1. Numpy 是什么

2. Numpy 的主要用途

二 Numpy 數組 VS Python 列表

三 Numpy 數據類型和屬性

1. 數據類型

(1)了解數據類型

(2)代碼示例

2. 數組屬性

(1)一般數組屬性

(2)代碼示例

四 廣播和矢量化

1. 對不同維度的數組進行加法運算

?2. 對不同維度的數組進行乘法運算

五 結束語

六 參考鏈接


一 Numpy(Numerical Python)

1. Numpy 是什么

Numpy 是 Python 語言進行科學計算的一個基礎拓展程序包,它支持大量的維度數組和矩陣運算,并且也提供了大量的數學函數庫來進行數組運算。它是一個運行速度非常快的數學庫,主要用于數組計算,包含:

  • 一個強大的N維數組對象 ndarray
  • 廣播功能函數
  • 整合 C/C++/Fortran 代碼的工具
  • 線性代數、傅里葉變換、隨機數生成等功能

2. Numpy 的主要用途

Numpy 與 Matplotlib(Python 繪圖庫 Matplotlib) 等第三方庫結合起來一起使用,提供了一個強大的科學數學計算環境,便于我們學習數據科學或者機器學習。

二 Numpy 數組 VS Python 列表

(1)Numpy 專門對數組的操作和運算進行了設計,存儲效率和輸入輸出性能遠遠大于列表中的嵌套式運算,當數組的維度越大時,Numpy的優勢更加明顯。

(2)兩者都可以對多維的數組進行操作,Numpy 中的 ndarray 是一個龐大的數據容器,可以輕松處理多維數組;列表通過嵌套進行多維數組的操作。

(3)Numpy 中的數組元素必須都是同質的,列表中的元素類型可以是多樣的,因此列表的通用性能強于 Numpy,但在進行科學計算時,Numpy 的代碼更為簡單。

三 Numpy 數據類型和屬性

1. 數據類型

(1)了解數據類型

Numpy 中的一般數據類型如下面的表格所示:
?

Numpy中的數據類型
數據類型描述
bool_布爾數據類型(True或者False)
int_默認的整數類型
intc與C的int類型一樣,一般是int32或者int64
intp用于索引的整數類型
int8/int16/int32/int64有符號整數
uint8/uint16/uint32/uint64無符號整數
float_float64類型的簡寫
float16半精度類型:1個符號位,5個指數位,10個尾數位
float32單精度類型:1個符號位,8個指數位,23個尾數位
float64雙精度類型:1個符號位,11個指數位,52個尾數位
complex_complex128的簡寫,即128位復數
complex6464位復數,表示雙32位浮點數(實數與虛數部分)
complex128128位復數,表示雙64位浮點數(實數與虛數部分)

(2)代碼示例

一般使用?np.dtype() 語句可以對數據的類型、大小、字節順序等進行描述:

""" Author:XiaoMa date:2021/12/30 """ import numpy as npdt = np.dtype(np.int32)#使用標量標簽 print(dt)dt = np.dtype('i1')#int8, int16, int32, int64 四種數據類型可以使用字符串 'i1', 'i2','i4','i8' 代替 print(dt)dt = np.dtype('<i1')#字節順序是通過對數據類型預先設定 < 或 > 來決定的。 < 意味著小端法(最小值存儲在最小的地址,即低位組放在最前面)。> 意味著大端法(最重要的字節存儲在最小的地址,即高位組放在最前面)。 print(dt)#-------------------- #結構化數據類型的使用 #-------------------- dt = np.dtype([('age', 'i1')])#創建結構化數據類型 print(dt)a = np.array([(10,), (20,), (30,)], dtype = dt)#將數據類型應用于數組對象 print(a) print(a['age'])#類型字段名可用于存取實際的 age 列 #----------------------------------------------------- #創建一個student結構,用來記錄學生的姓名、成績、年齡。 #----------------------------------------------------- student = np.dtype([('name', 'S8'), ('age', 'i1'), ('marks', 'f')]) a = np.array([('XiaoMa', '21', '99.9'), ('XiaoYang', '20', '98.8'), ('XiaoWang', '21', '97.7')], dtype = student) print(a)

得到輸出如下:
?在 python3 中 b' ' 代表字符串屬于 bytes 類型,詳細的介紹可以參考文章下方的鏈接。?

2. 數組屬性

(1)一般數組屬性

在 Numpy 中數組的每一個線性的維度稱為一個軸(axis),即軸代表一個一維數組。當我們對著 axis = 0 進行操作時,就是對數組的每一列元素進行操作;對 axis = 1進行操作時,就是對著數組的每一行元素進行操作。

在 Numpy 中數組的維度的數目稱為秩(rank),也就是數組中的軸的數目,比如一維數組的秩為1,二維數組的秩為2。

numpy.ndarray 中的一些重要的對象屬性如下:

ndarray.ndim: 秩,即維度或者軸的數目

ndarray.shape: 數組的維度,對于矩陣來說n行m列

ndarray.size: 數組中的元素的個數,即 n*m

ndarray.dtype: 數組對象的元素類型

ndarray.itemsize: 每一個元素的大小,以字節為單位

ndarray.flags: 數組對象的內存信息

ndarray.real: 數組對象的實部

ndarray.imag: 數組對象的虛部

(2)代碼示例

""" Author:XiaoMa date:2021/12/30 """ import numpy as np#------------------- #Numpy 中的數據屬性 #------------------- a = np.arange(24) print(a.ndim)#打印a的秩,目前a的維度只有1a = a.reshape(2, 4, 3)#調整a的結構形狀 print(a.ndim)a = np.array([[1, 2, 3], [4, 5, 6]]) print(a.shape)#使用 .shape 打印數組的行數和列數a.shape = (3, 2)#使用 .shape 來改變數組的1形狀 print(a)x = np.array([1, 2, 3, 4, 5], dtype = np.int8)#數組的數據類型為 int8(一個字節) print(x.itemsize)#打印字節數,為1y = np.array([1, 2, 3, 4, 5], dtype = np.float64)# 數組的數據類型為 float64(八個字節) print(y.itemsize)#打印字節數,為8print(x.flags)#打印數組元素的內存信息

得到的結果如下:

四 廣播和矢量化

當使用 Numpy 對不同形狀的數組進行數值計算時,在相應的元素上進行對相應的數組元素的算術計算,這就被稱為 Numpy 廣播,如:

1. 對不同維度的數組進行加法運算

a0 = np.array([[1, 2, 3], [4, 5, 6]]) a1 = np.array([[1, 0, 0]]) print(a0 + a1)

得到輸出:
?就是將一維數組加到了多維數組的每一個維度上

?2. 對不同維度的數組進行乘法運算

a0 = np.array([[1, 2, 3], [4, 5, 6]]) a1 = np.array([[1, 0, 0]]) print(a0*a1)

得到輸出:

?可以看出,運算形式和加法是一樣的,將會自行拓展與每一個維度相乘。

五 結束語

本篇博文主要簡單介紹了 Python 語言中的科學計算基礎庫 Numpy 中的數據類型、數組屬性以及矢量化運算,并加以代碼實現加強理解。?

六 參考鏈接

python列表和Numpy數組的區別

菜鳥教程

python中 r'', b'', u'', f'' 的含義

Bytes類型

總結

以上是生活随笔為你收集整理的Python 科学计算库 Numpy(一)—— 概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。