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

歡迎訪問 生活随笔!

生活随笔

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

python

Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础

發(fā)布時間:2023/12/10 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CSDN 課程推薦:《Python 數(shù)據(jù)分析與挖掘》,講師劉順祥,浙江工商大學統(tǒng)計學碩士,數(shù)據(jù)分析師,曾擔任唯品會大數(shù)據(jù)部擔任數(shù)據(jù)分析師一職,負責支付環(huán)節(jié)的數(shù)據(jù)分析業(yè)務。曾與聯(lián)想、亨氏、網(wǎng)魚網(wǎng)咖等企業(yè)合作多個企業(yè)級項目。


NumPy 系列文章:

  • Python 數(shù)據(jù)分析三劍客之 NumPy(一):理解 NumPy / 數(shù)組基礎
  • Python 數(shù)據(jù)分析三劍客之 NumPy(二):數(shù)組索引 / 切片 / 廣播 / 拼接 / 分割
  • Python 數(shù)據(jù)分析三劍客之 NumPy(三):數(shù)組的迭代與位運算
  • Python 數(shù)據(jù)分析三劍客之 NumPy(四):字符串函數(shù)總結與對比
  • Python 數(shù)據(jù)分析三劍客之 NumPy(五):數(shù)學 / 算術 / 統(tǒng)計 / 排序 / 條件 / 判斷函數(shù)合集
  • Python 數(shù)據(jù)分析三劍客之 NumPy(六):矩陣 / 線性代數(shù)庫與 IO 操作

另有 Pandas、Matplotlib 系列文章已更新完畢,歡迎關注:

  • Pandas 系列文章:https://itrhx.blog.csdn.net/category_9780397.html
  • Matplotlib 系列文章:https://itrhx.blog.csdn.net/category_9780418.html

推薦學習資料與網(wǎng)站(博主參與部分文檔翻譯):

  • NumPy 官方中文網(wǎng):https://www.numpy.org.cn/
  • Pandas 官方中文網(wǎng):https://www.pypandas.cn/
  • Matplotlib 官方中文網(wǎng):https://www.matplotlib.org.cn/
  • NumPy、Matplotlib、Pandas 速查表:https://github.com/TRHX/Python-quick-reference-table

文章目錄

    • 【1x00】了解 NumPy
    • 【2x00】NumPy 數(shù)組與 Python 列表的區(qū)別
    • 【3x00】理解 NumPy Ndarray 對象
    • 【4x00】理解不同維度的數(shù)組
    • 【5x00】創(chuàng)建 Ndarray 對象(創(chuàng)建數(shù)組)
      • 【5x01】一張表快速了解創(chuàng)建數(shù)組的不同方法
      • 【5x02】numpy.array()
      • 【5x03】numpy.asarray()
      • 【5x04】numpy.arange()
      • 【5x05】numpy.linspace()
      • 【5x06】numpy.logspace()
      • 【5x07】numpy.empty()
      • 【5x08】numpy.zeros()
      • 【5x09】numpy.ones()
      • 【5x10】numpy.eye()
      • 【5x11】numpy.frombuffer()
      • 【5x12】numpy.fromiter()
    • 【6x00】改變數(shù)組的維度或者形狀
      • 【6x01】numpy.reshape()
      • 【6x02】numpy.ravel()
      • 【6x03】numpy.resize()
      • 【6x04】numpy.ndarray.flatten()
      • 【6x05】numpy.ndarray.shape
      • 【6x06】numpy.ndarray.transpose() & numpy.ndarray.T
      • 【6x07】numpy.swapaxes()
    • 【7x00】NumPy 數(shù)據(jù)類型
    • 【8x00】NumPy 數(shù)組屬性


這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/104870084 未經(jīng)授權,禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!

【1x00】了解 NumPy

NumPy 是使用 Python 進行科學計算的基礎包,支持大量的維度數(shù)組與矩陣運算,對數(shù)組運算提供大量的數(shù)學函數(shù)庫。NumPy 重在數(shù)值計算,是大部分 Python 科學計算庫的基礎庫,多用于在大型、多維數(shù)組上執(zhí)行數(shù)值運算。

NumPy 主要包含如下的內(nèi)容:

  • 一個強大的 N 維數(shù)組對象(Ndarray);
  • 復雜的廣播功能函數(shù);
  • 集成 C/C++/Fortran 代碼的工具;
  • 具有線性代數(shù)、傅里葉變換、隨機數(shù)生成等功能。

【2x00】NumPy 數(shù)組與 Python 列表的區(qū)別

Numpy 使用 Ndarray 對象來處理多維數(shù)組,Python 列表通常存儲一維數(shù)組,通過列表的嵌套也可以實現(xiàn)多維數(shù)組。

Numpy 的 Ndarray 對象是一個快速而靈活的大數(shù)據(jù)容器。Numpy 專門針對數(shù)組的操作和運算進行了設計,所以數(shù)組的存儲效率和輸入輸出性能遠優(yōu)于 Python 中的嵌套列表,數(shù)組越大,Numpy 的優(yōu)勢就越明顯。

通常 Numpy 數(shù)組中的所有元素的類型都是相同的,而 Python 列表中的元素類型是任意的,所以在通用性能方面 Numpy 數(shù)組不及 Python 列表,但在科學計算中,可以省掉很多循環(huán)語句,代碼使用方面比 Python 列表簡單的多。

Python 列表的元素不同類型舉例:

>>> l = [True, '2', 3.2, 5] >>> [type(item) for item in l] [<class 'bool'>, <class 'str'>, <class 'float'>, <class 'int'>]

Python 列表中的每一項必須包含各自的類型信息、引用計數(shù)和其他信息,也就是說,每一項都是一個完整的 Python 對象,同時,Python 列表還包含一個指向指針塊的指針,其中的每一個指針對應一個完整的 Python 對象,另外,列表的優(yōu)勢是靈活,因為每個列表元素是一個包含數(shù)據(jù)和類型信息的完整結構體。相反 NumPy 數(shù)組缺乏這種靈活性,但是 NumPy 卻能更有效地存儲和操作數(shù)據(jù)。

【3x00】理解 NumPy Ndarray 對象

NumPy 提供了一個 N 維數(shù)組類型,即 Ndarray,它是一系列同類型數(shù)據(jù)的集合,是用于存放同類型元素的多維數(shù)組,以 0 下標為開始進行集合中元素的索引,所有 Ndarray 中的每個元素在內(nèi)存中都有相同存儲大小的區(qū)域。

Ndarray 內(nèi)部由以下內(nèi)容組成:

  • 一個指向數(shù)據(jù)(內(nèi)存或內(nèi)存映射文件中的一塊數(shù)據(jù))的指針;
  • 數(shù)據(jù)類型或 dtype,描述在數(shù)組中的固定大小值的格子;
  • 一個表示數(shù)組形狀(shape)的元組,表示各維度大小的元組;
  • 一個跨度元組(stride),其中的整數(shù)指的是為了前進到當前維度下一個元素需要“跨過”的字節(jié)數(shù)。

【4x00】理解不同維度的數(shù)組

NumPy 數(shù)組的維數(shù)稱為秩(rank),秩就是軸的數(shù)量,即數(shù)組的維度,一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推。

在 NumPy 中,每一個線性的數(shù)組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數(shù)組相當于是兩個一維數(shù)組,其中第一個一維數(shù)組中每個元素又是一個一維數(shù)組。所以一維數(shù)組就是 NumPy 中的軸(axis),第一個軸相當于是底層數(shù)組,第二個軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量 — 秩,就是數(shù)組的維數(shù)。

很多時候可以聲明 axis,axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第 1 軸進行操作,即對每一行進行操作。

一維數(shù)組:

>>> import numpy as np >>> a = np.array([1, 2, 3, 4]) >>> print(a) [1 2 3 4] >>> print(a.shape) (4,)


二維數(shù)組:

>>> import numpy as np >>> a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) >>> print(a) [[1 2 3 4][5 6 7 8]] >>> print(a.shape) (2, 4)

a.shape 輸出數(shù)組的維度,對于此二維數(shù)組,可以理解為 2 行 4 列。


三維數(shù)組:

>>> import numpy as np >>> a = np.array([[[1,2,3,4], [5,6,7,8]], [[9,10,11,12], [13,14,15,16]], [[17,18,19,20], [21,22,23,24]]]) >>> print(a) [[[ 1 2 3 4][ 5 6 7 8]][[ 9 10 11 12][13 14 15 16]][[17 18 19 20][21 22 23 24]]]>>> print(a.shape) (3, 2, 4)

a.shape 輸出數(shù)組的維度,對于此三維數(shù)組,可以理解為 3 塊,每塊有 2 行 4 列。

有網(wǎng)友對三維數(shù)組的這個圖有疑問,認為橫線應該是 axis=0,豎線是 axis=1,斜線是 axis=2,這個確實有點兒繞,不要受到前面一維二維的影響,我把我的理解又畫了一張圖出來,另外大家可以嘗試去取三維數(shù)組里面的某個值,多想一下就可以理解了。歡迎各位大佬一起交流學習!

【5x00】創(chuàng)建 Ndarray 對象(創(chuàng)建數(shù)組)

【5x01】一張表快速了解創(chuàng)建數(shù)組的不同方法

方法描述
numpy.array()將輸入數(shù)據(jù)(列表、元組、Ndarray 等)轉(zhuǎn)換為數(shù)組形式
當數(shù)據(jù)源為 Ndarray 時,該方法仍然會 copy 出一個副本,占用新的內(nèi)存
numpy.asarray()將輸入數(shù)據(jù)(列表、元組、Ndarray 等)轉(zhuǎn)換為數(shù)組形式
當數(shù)據(jù)源為 Ndarray 時,該方法不會 copy 出一個副本,不占用新的內(nèi)存
numpy.arange()創(chuàng)建一個一維數(shù)組,該數(shù)組由一個等差數(shù)列構成
通過指定開始值、終值和步長創(chuàng)建等差數(shù)列,得到的結果數(shù)組不包含終值
numpy.linspace()創(chuàng)建一個一維數(shù)組,該數(shù)組由一個等差數(shù)列構成
通過指定開始值、終值和元素個數(shù)創(chuàng)建等差數(shù)列,可通過 endpoint 參數(shù)指定是否包含終值
numpy.logspace()創(chuàng)建一個一維數(shù)組,該數(shù)組由一個等比數(shù)列構成
numpy.empty()創(chuàng)建一個指定形狀、數(shù)據(jù)類型且未初始化的數(shù)組
numpy.zeros()創(chuàng)建一個指定大小的數(shù)組,數(shù)組元素以 0 來填充
numpy.ones()創(chuàng)建一個指定大小的數(shù)組,數(shù)組元素以 1 來填充
numpy.eye()創(chuàng)建一個對角矩陣數(shù)組,返回一個二維數(shù)組,對角線上值為 1,其余位置為 0
numpy.frombuffer()將緩沖區(qū)解釋為一維數(shù)組,接受 buffer 輸入?yún)?shù),以流的形式讀入并轉(zhuǎn)化成 Ndarray 對象
numpy.fromiter()從可迭代對象中建立 Ndarray 對象,返回一個一維數(shù)組

【5x02】numpy.array()

調(diào)用 NumPy 的 array 方法即可創(chuàng)建一個 Ndarray 對象,即創(chuàng)建一個數(shù)組。

基本語法:numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

參數(shù)解釋:

參數(shù)描述
object數(shù)組或嵌套的數(shù)列
dtype數(shù)組元素的數(shù)據(jù)類型,可選
copy對象是否需要復制,可選
order創(chuàng)建數(shù)組的樣式,C為行方向,F為列方向,A為任意方向(默認)
subok默認返回一個與基類類型一致的數(shù)組
ndmin指定生成數(shù)組的最小維度

創(chuàng)建一個一維數(shù)組:

>>> import numpy as np >>> a = np.array([1, 2, 3]) >>> print(a) [1 2 3] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個二維數(shù)組:

>>> import numpy as np >>> a = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(a) [[1 2 3][4 5 6]] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個三維數(shù)組:

>>> import numpy as np >>> a = np.array([[[1,2,3], [4,5,6]], [[7,8,9], [10,11,12]]]) >>> print(a) [[[ 1 2 3][ 4 5 6]][[ 7 8 9][10 11 12]]]

【5x03】numpy.asarray()

numpy.asarray() 方法將輸入數(shù)據(jù)(列表、元組、Ndarray 等)轉(zhuǎn)換為數(shù)組形式,與 numpy.array() 方法類似,但 asarray 參數(shù)比 array 少兩個,另外最大的區(qū)別是當數(shù)據(jù)源為 Ndarray 時,array 方法仍然會 copy 出一個副本,占用新的內(nèi)存,但 asarray 方法不會。

基本語法:numpy.asarray(a, dtype=None, order=None)

參數(shù)解釋:

參數(shù)描述
a待轉(zhuǎn)換對象,可以是列表,元組,列表元組,元組列表,多維數(shù)組等
dtype可選項,指定數(shù)據(jù)類型
order可選項,以行優(yōu)先(C)或列優(yōu)先(F)的順序存儲多維數(shù)據(jù)在內(nèi)存中

將列表轉(zhuǎn)換為 Ndarray:

>>> import numpy as np >>> l = [1,2,3,4] >>> n = np.asarray(l) >>> print(n) [1 2 3 4] >>> print(type(n)) <class 'numpy.ndarray'>

將元組轉(zhuǎn)換為 Ndarray:

>>> import numpy as np >>> l = (1,2,3,4) >>> n = np.asarray(l) >>> print(n) [1 2 3 4] >>> print(type(n)) <class 'numpy.ndarray'>

將元組列表轉(zhuǎn)換為 Ndarray:

>>> import numpy as np >>> l = [(1,2,3),(4,5)] >>> n = np.asarray(l) >>> print(n) [(1, 2, 3) (4, 5)] >>> print(type(n)) <class 'numpy.ndarray'>

指定 dtype 參數(shù):

>>> import numpy as np >>> l = [1,2,3] >>> n = np.asarray(l, dtype=float) >>> print(n) [1. 2. 3.] >>> print(type(n)) <class 'numpy.ndarray'>

numpy.asarray() 方法和 numpy.array() 的區(qū)別演示:

當輸入數(shù)據(jù)為列表、元組等格式時,兩者沒有區(qū)別,都可以將其轉(zhuǎn)為數(shù)組格式:

>>> import numpy as np >>> a = [[1,2,3], [4,5,6], [7,8,9]] >>> b = np.array(a) >>> c = np.asarray(a) >>> a[1] = 0 >>> print(a) [[1, 2, 3], 0, [7, 8, 9]] >>> print(type(a)) # a 為列表 <class 'list'> >>> print(b) # 列表對象 a 的值改變,array 方法得到的值不會改變 [[1 2 3][4 5 6][7 8 9]] >>> print(c) # 列表對象 a 的值改變,asarray 方法得到的值不會改變 [[1 2 3][4 5 6][7 8 9]]

當輸入數(shù)據(jù)為 Ndarray 時,array 方法仍然會 copy 出一個副本,占用新的內(nèi)存,但 asarray 方法不會:

>>> import numpy as np >>> a = np.ones((3,3)) >>> b = np.array(a) >>> c = np.asarray(a) >>> a[1][1] = 2 >>> print(a) [[1. 1. 1.][1. 2. 1.][1. 1. 1.]] >>> print(type(a)) # a 為 Ndarray 對象 <class 'numpy.ndarray'> >>> print(b) # Ndarray 對象 a 的值改變,array 方法得到的值不會改變 [[1. 1. 1.][1. 1. 1.][1. 1. 1.]] >>> print(c) # Ndarray 對象 a 的值改變,asarray 方法得到的值也將改變 [[1. 1. 1.][1. 2. 1.][1. 1. 1.]]

【5x04】numpy.arange()

numpy.arange() 方法用于創(chuàng)建一個一維數(shù)組,在指定的間隔內(nèi)返回均勻間隔的數(shù)字并組成數(shù)組(Ndarray 對象),即該數(shù)組是一個等差數(shù)列構成的。arange() 類似 Python 的 range(),但是 arange() 的步長可以為小數(shù),而 range() 的步長只能是整數(shù)。

基本語法:numpy.arange([start, ]stop, [step, ]dtype=None)

參數(shù)解釋:

參數(shù)描述
start起始值,數(shù)字,可選項,默認起始值為 0,生成的元素包括起始值
stop結束值,數(shù)字,生成的元素不包括結束值
step步長,數(shù)字,可選項, 默認步長為 1,如果指定了 step,則必須給出 start
dtype輸出數(shù)組的類型,如果未給出 dtype,則從其他輸入?yún)?shù)推斷數(shù)據(jù)類型

應用舉例:

>>> import numpy as np >>> a = np.arange(5) # 相當于 np.array([0, 1, 2, 3, 4]) >>> b = np.arange(2, 5) # 相當于 np.array([2, 3, 4]) >>> c = np.arange(2, 9, 3) >>> print('a = %s\nb = %s\nc = %s' %(a,b,c)) a = [0 1 2 3 4] b = [2 3 4] c = [2 5 8]

【5x05】numpy.linspace()

numpy.linspace() 方法用于創(chuàng)建一個一維數(shù)組,在指定的間隔內(nèi)返回均勻間隔的數(shù)字并組成數(shù)組(Ndarray 對象),即該數(shù)組是一個等差數(shù)列構成的。linspace() 方法類似于 arange(),兩者除了參數(shù)有差別以外,還有以下的區(qū)別:

  • arange() 方法類似于內(nèi)置函數(shù) range(),通過指定開始值、終值和步長創(chuàng)建表示等差數(shù)列的一維數(shù)組,得到的結果數(shù)組不包含終值。

  • linspace() 通過指定開始值、終值和元素個數(shù)創(chuàng)建表示等差數(shù)列的一維數(shù)組,可以通過 endpoint 參數(shù)指定是否包含終值,默認值為True,即包含終值。

基本語法:numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)

參數(shù)解釋:

參數(shù)描述
start序列的起始值
stop序列的終止值,如果 endpoint 為 True,則該值將包含于數(shù)列中
num可選項,int 類型,要生成的等步長的樣本數(shù)量,即元素個數(shù),默認為 50
endpoint可選項,bool 類型,該值為 True 時,數(shù)列中將包含 stop 值,反之則不包含,默認為 True
retstep可選項,bool 類型,該值為 True 時,生成的數(shù)組中會顯示間距,反之則不顯示,默認為 False
dtype可選項,Ndarray 的數(shù)據(jù)類型
axis可選項,int 類型,結果中的軸用于存儲樣本。僅當 start 或 stop 類似于數(shù)組時才相關
默認情況下為 0,采樣將沿著在開始處插入的新軸進行,使用 -1 來獲得軸的末端

應用舉例:

不指定 num 值,將默認生成 50 個元素,數(shù)列中將包含 stop 值:

>>> import numpy as np >>> a = np.linspace(1, 10) >>> print(a) [ 1. 1.18367347 1.36734694 1.55102041 1.73469388 1.918367352.10204082 2.28571429 2.46938776 2.65306122 2.83673469 3.020408163.20408163 3.3877551 3.57142857 3.75510204 3.93877551 4.122448984.30612245 4.48979592 4.67346939 4.85714286 5.04081633 5.22448985.40816327 5.59183673 5.7755102 5.95918367 6.14285714 6.326530616.51020408 6.69387755 6.87755102 7.06122449 7.24489796 7.428571437.6122449 7.79591837 7.97959184 8.16326531 8.34693878 8.530612248.71428571 8.89795918 9.08163265 9.26530612 9.44897959 9.632653069.81632653 10. ]

指定 num 值為 10,將生成 10 個元素,數(shù)列中將包含 stop 值:

>>> import numpy as np >>> a = np.linspace(1, 10, 10) >>> print(a) [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]

指定 endpoint 值為 False,retstep 值為 True,數(shù)列中不包含 stop 值,生成的數(shù)組中會顯示間距:

>>> import numpy as np >>> a = np.linspace(1, 10, 10, endpoint=False, retstep=True) >>> print(a) (array([1. , 1.9, 2.8, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1]), 0.9)

指定 dtype 類型為 int:

>>> import numpy as np >>> a = np.linspace(1, 10, 10, endpoint=False, retstep=True, dtype=int) >>> print(a) (array([1, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 0.9)

【5x06】numpy.logspace()

numpy.logspace() 方法用于創(chuàng)建一個一維數(shù)組,該數(shù)組由一個等比數(shù)列構成。

基本語法:numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)

參數(shù)解釋:

參數(shù)描述
start序列的起始值
stop序列的終止值,如果 endpoint 為 True,則該值將包含于數(shù)列中
num可選項,int 類型,要生成的等步長的樣本數(shù)量,即元素個數(shù),默認為 50
endpoint可選項,bool 類型,該值為 True 時,數(shù)列中將包含 stop 值,反之則不包含,默認為 True
base可選項,float 類型,對數(shù) log 的底數(shù),即取對數(shù)的時候 log 的下標 ,默認為 10.0
dtype可選項,Ndarray 的數(shù)據(jù)類型
axis可選項,int 類型,結果中的軸用于存儲樣本。僅當 start 或 stop 類似于數(shù)組時才相關
默認情況下為 0,采樣將沿著在開始處插入的新軸進行,使用 -1 來獲得軸的末端

應用舉例:

指定起始值為 0,,終止值為 9,base 默認值為 10,代表的是 10 的冪,即 0 代表 10 的 0 次方,9 代表 10 的 9 次方:

>>> import numpy as np >>> a = np.logspace(0, 9, num = 10) >>> print(a) [1.e+00 1.e+01 1.e+02 1.e+03 1.e+04 1.e+05 1.e+06 1.e+07 1.e+08 1.e+09]

指定起始值為 0,,終止值為 9,base 值為 2,代表的是 2 的冪,即 0 代表 2 的 0 次方,9 代表 2 的 9 次方:

>>> import numpy as np >>> a = np.logspace(0, 9, num = 10, base = 2) >>> print(a) [ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]

起始值和終止值都可以為 float 類型:

>>> import numpy as np >>> a = np.logspace(1.0, 2.0, num = 10) >>> print(a) [ 10. 12.91549665 16.68100537 21.5443469 27.8255940235.93813664 46.41588834 59.94842503 77.42636827 100. ]

定義 dtype 屬性值為 int 類型:

>>> import numpy as np >>> a = np.logspace(0.0, 9.0, num = 10, base = 2, dtype = int) >>> print(a) [ 1 2 4 8 16 32 64 128 256 512]

【5x07】numpy.empty()

numpy.empty() 方法可用來創(chuàng)建一個指定形狀(shape)、數(shù)據(jù)類型(dtype)且未初始化的數(shù)組。

基本語法:numpy.empty(shape, dtype = float, order = 'C')

參數(shù)解釋:

參數(shù)描述
shape數(shù)組形狀
dtype數(shù)據(jù)類型,可選
order以行優(yōu)先(C)或列優(yōu)先(F)的順序存儲多維數(shù)據(jù)在內(nèi)存中

創(chuàng)建一個一維空數(shù)組(傳遞一個參數(shù)即可,代表數(shù)組長度,數(shù)組元素為隨機值,因為它們未初始化):

>>> import numpy as np >>> a = np.empty(3) >>> print(a) [3.538e-321 3.538e-321 0.000e+000] >>> print(type(a)) <class 'numpy.ndarray'> >>> >>> a = np.empty(3, dtype = int) # 定義類型為整數(shù) >>> print(a) [716 0 716]

創(chuàng)建一個二維空數(shù)組(傳遞兩個參數(shù),分別代表行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.empty([3, 2]) >>> print(a) [[6.23042070e-307 3.56043053e-307][1.37961641e-306 1.11258854e-306][8.90100843e-307 1.11261027e-306]] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個三維空數(shù)組(傳遞三個參數(shù),分別代表塊數(shù)、每一塊的行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.empty([3, 2, 4]) >>> print(a) [[[0. 0. 0. 0.][0. 0. 0. 0.]][[0. 0. 0. 0.][0. 0. 0. 0.]][[0. 0. 0. 0.][0. 0. 0. 0.]]]

【5x08】numpy.zeros()

numpy.zeros() 方法用于創(chuàng)建指定大小的數(shù)組,數(shù)組元素以 0 來填充。

基本語法:numpy.zeros(shape, dtype = float, order = 'C')

參數(shù)解釋:

參數(shù)描述
shape數(shù)組形狀
dtype數(shù)據(jù)類型,可選
order以行優(yōu)先(C)或列優(yōu)先(F)的順序存儲多維數(shù)據(jù)在內(nèi)存中

創(chuàng)建一個一維數(shù)組(傳遞一個參數(shù)即可,代表數(shù)組長度,數(shù)組元素以 0 填充):

>>> import numpy as np >>> a = np.zeros(5) >>> print(a) [0. 0. 0. 0. 0.] >>> print(type(a)) <class 'numpy.ndarray'> >>> >>> a = np.zeros(5, dtype = int) # 定義類型為整數(shù) >>> print(a) [0 0 0 0 0]

創(chuàng)建一個二維數(shù)組(傳遞兩個參數(shù),分別代表行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.zeros([2, 3]) >>> print(a) [[0. 0. 0.][0. 0. 0.]] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個三維空數(shù)組(傳遞三個參數(shù),分別代表塊數(shù)、每一塊的行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.zeros([4, 2, 3]) >>> print(a) [[[0. 0. 0.][0. 0. 0.]][[0. 0. 0.][0. 0. 0.]][[0. 0. 0.][0. 0. 0.]][[0. 0. 0.][0. 0. 0.]]] >>> print(type(a)) <class 'numpy.ndarray'>

【5x09】numpy.ones()

numpy.ones() 方法用于創(chuàng)建指定大小的數(shù)組,數(shù)組元素以 1 來填充。

基本語法:numpy.ones(shape, dtype = None, order = 'C')

參數(shù)解釋:

參數(shù)描述
shape數(shù)組形狀
dtype數(shù)據(jù)類型,可選
order以行優(yōu)先(C)或列優(yōu)先(F)的順序存儲多維數(shù)據(jù)在內(nèi)存中

創(chuàng)建一個一維數(shù)組(傳遞一個參數(shù)即可,代表數(shù)組長度,數(shù)組元素以 0 填充):

>>> import numpy as np >>> a = np.ones(5) >>> print(a) [1. 1. 1. 1. 1.] >>> print(type(a)) <class 'numpy.ndarray'> >>> >>> a = np.ones(5, dtype = int) # 定義類型為整數(shù) >>> print(a) [1 1 1 1 1] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個二維數(shù)組(傳遞兩個參數(shù),分別代表行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.ones([2, 3]) >>> print(a) [[1. 1. 1.][1. 1. 1.]] >>> print(type(a)) <class 'numpy.ndarray'>

創(chuàng)建一個三維數(shù)組(傳遞三個參數(shù),分別代表塊數(shù)、每一塊的行數(shù)和列數(shù)):

>>> import numpy as np >>> a = np.ones([3, 2 ,5]) >>> print(a) [[[1. 1. 1. 1. 1.][1. 1. 1. 1. 1.]][[1. 1. 1. 1. 1.][1. 1. 1. 1. 1.]][[1. 1. 1. 1. 1.][1. 1. 1. 1. 1.]]] >>> print(type(a)) <class 'numpy.ndarray'>

【5x10】numpy.eye()

numpy.eye() 方法用于創(chuàng)建對角矩陣數(shù)組,返回一個二維數(shù)組,對角線上值為 1,其余位置為 0。

基本語法:numpy.eye(N, M=None, k=0, dtype=<class 'float'>, order='C')

參數(shù)解釋:

參數(shù)描述
Nint 類型,目標數(shù)組的行數(shù)
Mint 類型,可選項,目標數(shù)組的列數(shù),如果未指定,則默認與行數(shù)(N)相同
kint 類型,可選項,對角線索引,0(默認值)為主對角線,正值為上對角線,負值為下對角線
簡單來說可以理解成將值為 1 的對角線向左右平移 k 個單位,默認值 0 即對角線為 1,k 為正值右移,負值左移
dtype可選項,返回數(shù)組的數(shù)據(jù)類型
order可選項,以行優(yōu)先(C)或列優(yōu)先(F)的順序存儲多維數(shù)據(jù)在內(nèi)存中

應用舉例:

>>> import numpy as np >>> print(np.eye(5, 5)) # 創(chuàng)建一個對角矩陣 [[1. 0. 0. 0. 0.][0. 1. 0. 0. 0.][0. 0. 1. 0. 0.][0. 0. 0. 1. 0.][0. 0. 0. 0. 1.]] >>> print(np.eye(5, 5, k=1)) # 將值為 1 的對角線向右移 1 個單位 [[0. 1. 0. 0. 0.][0. 0. 1. 0. 0.][0. 0. 0. 1. 0.][0. 0. 0. 0. 1.][0. 0. 0. 0. 0.]] >>> print(np.eye(5, 5, k=-2)) # 將值為 1 的對角線向右左移 2 個單位 [[0. 0. 0. 0. 0.][0. 0. 0. 0. 0.][1. 0. 0. 0. 0.][0. 1. 0. 0. 0.][0. 0. 1. 0. 0.]] >>> print(np.eye(5, dtype=int)) # 指定為 int 類型 [[1 0 0 0 0][0 1 0 0 0][0 0 1 0 0][0 0 0 1 0][0 0 0 0 1]]

【5x11】numpy.frombuffer()

numpy.frombuffer() 方法將緩沖區(qū)解釋為一維數(shù)組,接受 buffer 輸入?yún)?shù),以流的形式讀入轉(zhuǎn)化成 ndarray 對象。當 buffer 是字符串時,Python3 默認 str 是 Unicode 類型,所以要轉(zhuǎn)成 bytestring,即在原 str 前加上 b。

基本語法:numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)

參數(shù)解釋:

參數(shù)描述
buffer可以是任意對象,會以流的形式讀入
dtype可選項,返回數(shù)組的數(shù)據(jù)類型
count可選項,讀取的數(shù)據(jù)數(shù)量,默認為 -1,即讀取緩沖區(qū)中所有數(shù)據(jù)
offset可選項,讀取的起始位置,以字節(jié)為單位,默認為 0

應用舉例:

>>> import numpy as np >>> a = b'I love python!' >>> b = np.frombuffer(a, dtype='S1') >>> print(b) [b'I' b' ' b'l' b'o' b'v' b'e' b' ' b'p' b'y' b't' b'h' b'o' b'n' b'!'] >>> >>> b = np.frombuffer(a, dtype='S1', count=5) # 指定要讀取的數(shù)據(jù)量 >>> print(b) [b'I' b' ' b'l' b'o' b'v'] >>> >>> b = np.frombuffer(a, dtype='S1', count=5, offset=6) # 指定讀取數(shù)據(jù)的起始位置 >>> print(b) [b' ' b'p' b'y' b't' b'h'] >>> >>> import numpy as np >>> a = b'\x01\x02' >>> b = np.frombuffer(a, dtype='uint8') >>> print(b) [1 2]

【5x12】numpy.fromiter()

numpy.fromiter() 方法可以從可迭代對象中建立 Ndarray 對象,返回一個一維數(shù)組。

基本語法:numpy.fromiter(iterable, dtype, count=-1)

參數(shù)解釋:

參數(shù)描述
iterable可迭代對象
dtype返回數(shù)組的數(shù)據(jù)類型
count讀取的數(shù)據(jù)數(shù)量,默認為 -1,即讀取所有數(shù)據(jù)

應用舉例:

>>> import numpy as np >>> l = range(5) >>> i = iter(l) # iter() 方法用于生成迭代器 >>> n = np.fromiter(i, dtype=float) # 從可迭代對象中建立 Ndarray 對象 >>> print(l, type(l)) range(0, 5) <class 'range'> >>> print(i, type(i)) <range_iterator object at 0x00000163E75DCA70> <class 'range_iterator'> >>> print(n, type(n)) [0. 1. 2. 3. 4.] <class 'numpy.ndarray'>
這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/104870084 未經(jīng)授權,禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!

【6x00】改變數(shù)組的維度或者形狀

【6x01】numpy.reshape()

numpy.reshape() 方法用于重新調(diào)整數(shù)組的維數(shù)(重塑)。

基本語法:numpy.reshape(a, newshape, order='C')

參數(shù)解釋:

a:要重塑的數(shù)組

newshape:重塑后的形狀,新形狀應與原始形狀兼容。如果是整數(shù),則結果將是該長度的一維數(shù)組。一個形狀維度可以是-1。在這種情況下,將根據(jù)數(shù)組的長度和剩余維度推斷該值。舉個例子,原數(shù)組 a 是一個 4 行 n 列的二維數(shù)組,現(xiàn)在要將其轉(zhuǎn)換成只有 1 行的一維數(shù)組,由于不清楚原二維數(shù)組有多少列,也就不清楚一共有多少元素,所以可以使用 np.reshape(a, (1, -1)) 語句將其轉(zhuǎn)化為一維數(shù)組,其中 -1 會讓程序自動計算有多少列,此概念將在后面舉例具體說明。

order:可選值為 C、F、A,使用索引順序讀取 a 的元素,并按照索引順序?qū)⒃胤诺阶儞Q后的的數(shù)組中,默認參數(shù)為 C。

C 指的是用類 C 寫的讀/索引順序的元素,最后一個維度變化最快,第一個維度變化最慢。橫著讀,橫著寫,優(yōu)先讀/寫一行。

F 是指用 FORTRAN 類索引順序讀/寫元素,最后一個維度變化最慢,第一個維度變化最快。豎著讀,豎著寫,優(yōu)先讀/寫一列。注意,C 和 F 選項不考慮底層數(shù)組的內(nèi)存布局,只引用索引的順序。

A 選項所生成的數(shù)組的效果與原數(shù)組 a 的數(shù)據(jù)存儲方式有關,如果數(shù)據(jù)是按照 FORTRAN 存儲的話,它的生成效果與 F 相同,否則與 C 相同。

應用舉例:

>>> import numpy as np >>> a = np.array([1,2,3,4,5,6,7,8]) # 創(chuàng)建一個一維數(shù)組 >>> print(a) [1 2 3 4 5 6 7 8] >>> b = np.reshape(a, (2,4)) # 重塑為一個二維數(shù)組 >>> print(b) [[1 2 3 4][5 6 7 8]] >>> c = np.reshape(a, (2,2,2)) # 重塑為一個三維數(shù)組 >>> print(c) [[[1 2][3 4]][[5 6][7 8]]]

添加 order 參數(shù)舉例:

>>> import numpy as np >>> a = np.array([[1,2,3], [4,5,6]]) # 創(chuàng)建一個二維數(shù)組 >>> print(a) [[1 2 3][4 5 6]] >>> b = np.reshape(a, 6, order='C') # 按照行優(yōu)先 >>> print(b) [1 2 3 4 5 6] >>> b = np.reshape(a, 6, order='F') # 按照列優(yōu)先 >>> print(b) [1 4 2 5 3 6]

另外,reshape 方法新生成的數(shù)組和原數(shù)組共用一個內(nèi)存,不管改變哪個都會互相影響:

>>> import numpy as np >>> a = np.array([1,2,3,4,5,6,7,8]) >>> b = np.reshape(a, (2,4)) >>> print(a) [1 2 3 4 5 6 7 8] >>> print(b) [[1 2 3 4][5 6 7 8]] >>> a[0] = 666 >>> print(a) [666 2 3 4 5 6 7 8] >>> print(b) [[666 2 3 4][ 5 6 7 8]]

newshape 重塑后的形狀維度可以是 -1,簡單舉例:

  • reshape(1,-1):將原數(shù)組轉(zhuǎn)化成一行 N 列

  • reshape(2,-1):將原數(shù)組轉(zhuǎn)換成兩行 N 列

  • reshape(-1,1):將原數(shù)組轉(zhuǎn)換成一列 N 行

  • reshape(-1,2):將原數(shù)組轉(zhuǎn)化成兩列 N 行

>>> import numpy as np >>> a = np.arange(16) # 生成一個由 0-15 組成的一維數(shù)組 >>> print(a) [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] >>> b = np.reshape(a, (2,8)) # 將一維數(shù)組 a 轉(zhuǎn)換成一個 2 行 8 列的二維數(shù)組 b >>> print(b) [[ 0 1 2 3 4 5 6 7][ 8 9 10 11 12 13 14 15]] >>> c = np.reshape(b, (8,-1)) # 將二維數(shù)組 b 轉(zhuǎn)換成 8 行的格式,程序自動計算列數(shù)(列數(shù):16/8=2) >>> print(c) [[ 0 1][ 2 3][ 4 5][ 6 7][ 8 9][10 11][12 13][14 15]] >>> d = np.reshape(c, (-1,4)) # 將二維數(shù)組 c 轉(zhuǎn)換成 4 列的格式,程序自動計算行數(shù)(行數(shù):16/4=4) >>> print(d) [[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11][12 13 14 15]]

【6x02】numpy.ravel()

numpy.ravel() 方法用于完成展平的操作。

基本語法:numpy.ravel(a, order='C')

參數(shù)解釋:

參數(shù)描述
a待轉(zhuǎn)換的數(shù)組
order值可以是 C F A K,含義與 reshape 方法中參數(shù)的一樣,與 reshape 方法不同的是多了個值 K
K 表示按順序在內(nèi)存中讀取元素,但在跨距為負時會反轉(zhuǎn)數(shù)據(jù)

應用舉例:

>>> import numpy as np >>> a = np.array([[[1,2,3,4], [5,6,7,8]], [[9,10,11,12], [13,14,15,16]], [[17,18,19,20], [21,22,23,24]]]) >>> print(a) [[[ 1 2 3 4][ 5 6 7 8]][[ 9 10 11 12][13 14 15 16]][[17 18 19 20][21 22 23 24]]] >>> print(a.ravel()) [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24] >>> print(np.ravel(a)) [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]

【6x03】numpy.resize()

numpy.resize() 方法會直接修改所操作的數(shù)組,返回具有指定形狀的新數(shù)組,如果新數(shù)組大于原始數(shù)組,則新數(shù)組將填充 a 的重復副本。

基本語法:numpy.resize(a, new_shape)

參數(shù)解釋:

參數(shù)描述
a待轉(zhuǎn)換的數(shù)組
new_shape新數(shù)組的大小形狀
>>> import numpy as np >>> a = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(a) [[1 2 3][4 5 6]] >>> print(np.resize(a, (3, 2))) [[1 2][3 4][5 6]] >>> print(np.resize(a, (3, 3))) [[1 2 3][4 5 6][1 2 3]] >>> print(np.resize(a, (2, 4))) [[1 2 3 4][5 6 1 2]]

【6x04】numpy.ndarray.flatten()

numpy.ndarray.flatten() 方法恰如其名,flatten 就是展平的意思,與 ravel 函數(shù)的功能相同,二者的不同之處在于:flatten 方法會請求分配新的內(nèi)存來保存結果,而 ravel 方法只是返回數(shù)組的一個視圖(view)。

基本語法:ndarray.flatten(order='C')

其 order 參數(shù)的值可以是 C F A K,含義與 reshape 和 ravel 方法中參數(shù)的一樣.

應用舉例:

>>> import numpy as np >>> a = np.array([[[1,2,3,4], [5,6,7,8]], [[9,10,11,12], [13,14,15,16]], [[17,18,19,20], [21,22,23,24]]]) >>> print(a) [[[ 1 2 3 4][ 5 6 7 8]][[ 9 10 11 12][13 14 15 16]][[17 18 19 20][21 22 23 24]]] >>> print(a.flatten()) [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24]

【6x05】numpy.ndarray.shape

numpy.ndarray.shape 本來是 Ndarray 對象的一個屬性,但可以通過直接用一個正整數(shù)元組對其賦值來設置數(shù)組的維度:

>>> import numpy as np >>> a = np.array([[[1,2,3,4], [5,6,7,8]], [[9,10,11,12], [13,14,15,16]], [[17,18,19,20], [21,22,23,24]]]) >>> print(a) [[[ 1 2 3 4][ 5 6 7 8]][[ 9 10 11 12][13 14 15 16]][[17 18 19 20][21 22 23 24]]] >>> a.shape = (3, 8) >>> print(a) [[ 1 2 3 4 5 6 7 8][ 9 10 11 12 13 14 15 16][17 18 19 20 21 22 23 24]]

【6x06】numpy.ndarray.transpose() & numpy.ndarray.T

ndarray.transpose() 和 ndarray.T 方法的作用是對數(shù)組進行轉(zhuǎn)置,即原來的行變成列,原來的列變成行。

>>> import numpy as np >>> a = np.array([[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17]]) >>> print(a) [[ 0 1 2 3 4 5][ 6 7 8 9 10 11][12 13 14 15 16 17]] >>> print(a.transpose()) [[ 0 6 12][ 1 7 13][ 2 8 14][ 3 9 15][ 4 10 16][ 5 11 17]] >>> print(a.T) [[ 0 6 12][ 1 7 13][ 2 8 14][ 3 9 15][ 4 10 16][ 5 11 17]]

【6x07】numpy.swapaxes()

numpy.swapaxes() 方法用于對換數(shù)組的兩個軸

基本語法:numpy.swapaxes(a, axis1, axis2)

參數(shù)解釋:a 為原始數(shù)組,axis1、axis2 分別對應兩個軸,類型為整數(shù)

>>> import numpy as np >>> a = np.array([[0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17]]) >>> print(a) [[ 0 1 2 3 4 5][ 6 7 8 9 10 11][12 13 14 15 16 17]] >>> print(np.swapaxes(a, 1, 0)) # 交換 1 軸和 0 軸,此處相當于數(shù)組的轉(zhuǎn)置,與【6x06】效果相同 [[ 0 6 12][ 1 7 13][ 2 8 14][ 3 9 15][ 4 10 16][ 5 11 17]]

【7x00】NumPy 數(shù)據(jù)類型

NumPy 數(shù)組包含同一類型的值,支持的數(shù)據(jù)類型比 Python 內(nèi)置的類型更多,構建一個數(shù)組時,可以用一個字符串參數(shù) dtype 來指定數(shù)據(jù)類型:

np.zeros(10, dtype='int16') np.zeros(10, dtype=np.int16) 數(shù)據(jù)類型描述
bool_??????????????布爾值(True 或者 False),用一個字節(jié)存儲
int_??????????????默認的整型(類似于 C 語言中的 long,通常情況下是 int32 或 int64)
intc??????????????同 C 語言的 int 相同(通常是 int32 或 int64)
intp??????????????用作索引的整型(和 C 語言的 ssize_t 相同,通常情況下是 int32 或 int64)
int8??????????????字節(jié)(byte,范圍從 –128 到 127),可用 i1 縮寫代替
int16??????????????整型(范圍從 –32768 到 32767),可用 i2 縮寫代替
int32??????????????整型(范圍從 –2147483648 到 2147483647),可用 i4 縮寫代替
int64??????????????整型(范圍從 –9223372036854775808 到 9223372036854775807),可用 i8 縮寫代替
uint8??????????????無符號整型(范圍從 0 到 255)
uint16??????????????無符號整型(范圍從 0 到 65535)
uint32??????????????無符號整型(范圍從 0 到 4294967295)
uint64??????????????無符號整型(范圍從 0 到 18446744073709551615)
float_??????????????float64 的簡化形式
float16??????????????半精度浮點型,包括:1 比特位符號,5 比特位指數(shù),10 比特位尾數(shù)
float32??????????????單精度浮點型,包括:1 比特位符號,8 比特位指數(shù),23 比特位尾數(shù)
float64??????????????雙精度浮點型,包括:1 比特位符號,11 比特位指數(shù),52 比特位尾數(shù)
complex_??????????????complex128 的簡化形式
complex64??????????????復數(shù),表示雙 32 位浮點數(shù)(實數(shù)部分和虛數(shù)部分)
complex128??????????????復數(shù),表示雙 64 位浮點數(shù)(實數(shù)部分和虛數(shù)部分)

【8x00】NumPy 數(shù)組屬性

屬性描述
ndarray.ndim秩,即軸的數(shù)量或維度的數(shù)量,一維數(shù)組的秩為 1,二維數(shù)組的秩為 2,以此類推
ndarray.shape數(shù)組的維度,對于矩陣,n 行 m 列
ndarray.size數(shù)組元素的總個數(shù),相當于 .shape 中 n*m 的值
ndarray.dtypendarray 對象的元素類型
ndarray.itemsizendarray 對象中每個元素的大小,以字節(jié)為單位
ndarray.flagsndarray 對象的內(nèi)存信息
ndarray.realndarray元素的實部
ndarray.imagndarray 元素的虛部
ndarray.data包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性

其中 ndarray.flags 包含以下屬性:

屬性描述
C_CONTIGUOUS (C)數(shù)據(jù)是在一個單一的 C 風格的連續(xù)段中
F_CONTIGUOUS (F)數(shù)據(jù)是在一個單一的 Fortran 風格的連續(xù)段中
OWNDATA (O)數(shù)組擁有它所使用的內(nèi)存或從另一個對象中借用它
WRITEABLE (W)數(shù)據(jù)區(qū)域可以被寫入,將該值設置為 False,則數(shù)據(jù)為只讀
ALIGNED (A)數(shù)據(jù)和所有元素都適當?shù)貙R到硬件上
UPDATEIFCOPY (U)這個數(shù)組是其它數(shù)組的一個副本,當這個數(shù)組被釋放時,原數(shù)組的內(nèi)容將被更新

應用舉例:

>>> import numpy as np >>> a = np.array([1,2,3,4,5]) >>> print(a.flags)C_CONTIGUOUS : TrueF_CONTIGUOUS : TrueOWNDATA : TrueWRITEABLE : TrueALIGNED : TrueWRITEBACKIFCOPY : FalseUPDATEIFCOPY : False

ndarray.shape 查看數(shù)組維度以及更改數(shù)組形狀:

>>> import numpy as np >>> a = np.array([[1,2,3],[4,5,6]]) >>> print(a) [[1 2 3][4 5 6]] >>> print(a.shape) (2, 3) >>> a.shape = (3, 2) >>> print(a) [[1 2][3 4][5 6]] >>> print(a.shape) (3, 2)
這里是一段防爬蟲文本,請讀者忽略。 本文原創(chuàng)首發(fā)于 CSDN,作者 TRHX。 博客首頁:https://itrhx.blog.csdn.net/ 本文鏈接:https://itrhx.blog.csdn.net/article/details/104870084 未經(jīng)授權,禁止轉(zhuǎn)載!惡意轉(zhuǎn)載,后果自負!尊重原創(chuàng),遠離剽竊!

總結

以上是生活随笔為你收集整理的Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人av亚洲 | 女裸全身无奶罩内裤内衣内裤 | av在线电影网 | 在线免费成人 | 欧美性视屏 | 成年人黄色片 | 一区二区手机在线 | 欧美一级视频在线观看 | 国产精品中文字幕在线观看 | 成人黄色录像 | 日韩欧美片| 国产黄色在线免费观看 | 成人国产精品免费观看视频 | 国产88av| 在线观看福利电影 | 日本人jizz | 97久久国产亚洲精品超碰热 | 麻豆精品在线视频 | 亚洲精品国产精品乱码不66 | 污污视频网站免费观看 | 日韩和一区二区 | 久久中文免费视频 | 欧美一a| 亚洲天堂自拍偷拍 | 国产精品国语 | 91操操| 丁香婷婷久久久综合精品国产 | 中文字幕二区 | 成人乱人乱一区二区三区 | 免费日本视频 | 久久综合一本 | 麻豆一区二区三区精品视频 | 色视频在线免费观看 | 人人爽人人爽人人爽人人爽 | 欧美黑人精品 | a国产在线| 日韩国产一区二区三区 | 国产真实乱人偷精品视频 | 一女双乳被两男吸视频 | 国产福利一区二区 | 午夜大片 | 中文字幕码精品视频网站 | 女同性恋一区二区三区 | 97色网 | 国产特黄大片aaaa毛片 | 日本大尺度吃奶做爰视频 | 看日本毛片 | 亚洲第三十七页 | 亚洲欧美日韩精品在线 | 亚洲成人www | 日韩精品视频久久 | 免费欧美一区 | 色婷婷国产精品久久包臀 | 91精品国产乱码久久久久久久久 | 亚洲精品影片 | 久草综合在线观看 | 国产白丝精品91爽爽久久 | 草逼网站| 免费观看成年人网站 | 久久青青草原亚洲av无码麻豆 | 亚洲一区二区三区人妻 | 天天伊人网 | 美女让男人捅 | 影视av | 性色生活片 | 国产婷婷精品 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 久久艹这里只有精品 | 精品国产三级片在线观看 | 亚洲综合影视 | 国产精品毛片久久久久久 | 国产精品99久久久久久动医院 | 日韩久久久久久 | 国产区一区二 | 尤物视频在线观看国产性感 | 国产精品嫩草影院桃色 | 亚洲free性xxxx护士白浆 | 久久久成人精品一区二区三区 | 影音先锋在线看 | 搡老岳熟女国产熟妇 | 99热这里 | 久久综合久久88 | 夫の上司に犯波多野结衣853 | 蘑菇福利视频一区播放 | 91在线国产观看 | 午夜精品成人毛片非洲 | 成人久久一区二区 | 国产免费又粗又猛又爽 | 欧美成人xxx| 色欧美综合 | 91亚洲国产成人精品一区二三 | 国产原创91| av中文字幕一区二区 | 蜜桃精品视频在线观看 | 欧美日本韩国一区二区三区 | 久热这里只有精品6 | 亚洲精品乱码久久久久久9色 | 捆绑黑丝美女 | 中文字幕 日韩有码 |