最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中numpy包使用教程之?dāng)?shù)組和相關(guān)操作詳解

 更新時(shí)間:2017年07月30日 11:01:26   作者:一路前行1  
這篇文章主要給大家介紹了關(guān)于python中numpy包的使用教程,包含數(shù)組和相關(guān)操作等內(nèi)容,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。

前言

大家應(yīng)該都有所了解,下面就簡(jiǎn)單介紹下Numpy,NumPy(Numerical Python)是一個(gè)用于科學(xué)計(jì)算第三方的Python包。

NumPy提供了許多高級(jí)的數(shù)值編程工具,如:矩陣數(shù)據(jù)類(lèi)型、矢量處理,以及精密的運(yùn)算庫(kù)。專(zhuān)為進(jìn)行嚴(yán)格的數(shù)字處理而產(chǎn)生。下面本文將詳細(xì)介紹關(guān)于python中numpy包使用教程之?dāng)?shù)組和相關(guān)操作的相關(guān)內(nèi)容,下面話(huà)不多說(shuō),來(lái)一起看看詳細(xì)的介紹:

一、數(shù)組簡(jiǎn)介

Numpy中,最重要的數(shù)據(jù)結(jié)構(gòu)是:多維數(shù)組類(lèi)型(numpy.ndarray

ndarray由兩部分組成:

  • 實(shí)際所持有的數(shù)據(jù);
  • 描述這些數(shù)據(jù)的元數(shù)據(jù)(metadata)

數(shù)組(即矩陣)的維度被稱(chēng)為axes,維數(shù)稱(chēng)為rank

ndarray 的重要屬性包括: 

  • ndarray.ndim:數(shù)組的維數(shù),也稱(chēng)為rank
  • ndarray.shape:數(shù)組各維的大小,對(duì)一個(gè)n行m列的矩陣來(lái)說(shuō), shape 為 (n,m)
  • ndarray.size:元素的總數(shù)。
  • ndarray.dtype:每個(gè)元素的類(lèi)型,可以是numpy.int32, numpy.int16, and numpy.float64等
  • ndarray.itemsize:每個(gè)元素占用的字節(jié)數(shù)。
  • ndarray.data:指向數(shù)據(jù)內(nèi)存。

二、數(shù)組的使用

使用numpy前要先導(dǎo)入模塊,使用下面的語(yǔ)句導(dǎo)入模塊:

improt numpy as np #其中np為numpy的別名,是一種習(xí)慣用法 

1.使用array方法生成數(shù)組

array,也就是數(shù)組,是numpy中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),最關(guān)鍵的屬性是維度和元素類(lèi)型,在numpy中,可以非常方便地創(chuàng)建各種不同類(lèi)型的多維數(shù)組,并且執(zhí)行一些基本基本操作,生成數(shù)組的方法有一下幾種:
以list或tuple變量產(chǎn)生以為數(shù)組:

>>> print np.array([1,2,3,4]) 
[1 2 3 4] 
>>> print np.array((1.2,2,3,4)) 
[ 1.2 2. 3. 4. ] 

以list或tuple變量為元素產(chǎn)生二維數(shù)組或者多維數(shù)組:

>>> x = np.array(((1,2,3),(4,5,6))) 
>>> x 
array([[1, 2, 3], 
 [4, 5, 6]]) 
>>> y = np.array([[1,2,3],[4,5,6]]) 
>>> y 
array([[1, 2, 3], 
 [4, 5, 6]]) 

2.使用numpy.arange方法生成數(shù)組

>>> print np.arange(15) 
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14] 
>>> print type(np.arange(15)) 
<type 'numpy.ndarray'> 

3.使用內(nèi)置函數(shù)生成特殊矩陣(數(shù)組)

零矩陣

>>> print np.zeros((3,4)) 
[[ 0. 0. 0. 0.] 
 [ 0. 0. 0. 0.] 
 [ 0. 0. 0. 0.]] 

一矩陣

>>> print np.ones((3,4)) 
[[ 1. 1. 1. 1.] 
 [1. 1. 1. 1.] 
 [ 1. 1. 1. 1.]] 

單位矩陣

>>> print np.eye(3) 
[[ 1. 0. 0.] 
 [0. 1. 0.] 
 [ 0. 0. 1.]] 

4.索引與切片

>>> x = np.array(((1,2,3),(4,5,6))) 
>>> x[1,2] #獲取第二行第三列的數(shù) 
6 
>>> y=x[:,1] #獲取第二列 
>>> y 
array([2, 5]) 

與python語(yǔ)法一致,不再舉例。

5.獲取數(shù)組屬性

>>> a = np.zeros((2,2,2)) 
>>> print a.ndim #數(shù)組的維數(shù) 
3 
>>> print a.shape #數(shù)組每一維的大小 
(2, 2, 2) 
>>> print a.size #數(shù)組的元素?cái)?shù) 
8 
>>> print a.dtype #元素類(lèi)型 
float64 
>>> print a.itemsize #每個(gè)元素所占的字節(jié)數(shù) 
8 

6.數(shù)組變換

多維轉(zhuǎn)換為一維:

>>> x 
array([[1, 2, 3], 
  [4, 5, 6]]) 
>>> x.flatten() 
array([1, 2, 3, 4, 5, 6]) 

一維轉(zhuǎn)換為多維:

>>> print np.arange(15).reshape(3,5) #改變形狀,將一維的改成三行五列 
[[ 0 1 2 3 4] 
 [ 5 6 7 8 9] 
 [10 11 12 13 14]] 

轉(zhuǎn)置:

>>> x 
array([[1, 2, 3], 
  [4, 5, 6]]) 
>>> x.transpose() 
array([[1, 4], 
  [2, 5], 
  [3, 6]]) 

7.數(shù)組組合

水平組合:

>>> y=x 
>>> numpy.hstack((x,y)) 
array([[1, 2, 3, 1, 2, 3], 
  [4, 5, 6, 4, 5, 6]] 

垂直組合

>>> numpy.vstack((x,y)) 
array([[1, 2, 3], 
  [4, 5, 6], 
  [1, 2, 3], 
  [4, 5, 6]]) 

用concatenate函數(shù)可以同時(shí)實(shí)現(xiàn)這兩種方式,通過(guò)指定axis參數(shù),默認(rèn)為0,垂直組合。

>>> numpy.concatenate((x,y)) 
array([[1, 2, 3], 
  [4, 5, 6], 
  [1, 2, 3], 
  [4, 5, 6]]) 
>>> numpy.concatenate((x,y),axis=1) 
array([[1, 2, 3, 1, 2, 3], 
  [4, 5, 6, 4, 5, 6]]) 

8.數(shù)組分割

垂直分割

>>> z 
array([[1, 2, 3], 
  [4, 5, 6], 
  [1, 2, 3], 
  [4, 5, 6]]) 
>>> numpy.vsplit(z,2) #注意這里設(shè)置的分割數(shù)目必須可以被行數(shù)整除 
[array([[1, 2, 3], 
  [4, 5, 6]]), array([[1, 2, 3], 
  [4, 5, 6]])] 

水平分割

>>> numpy.hsplit(z,3) 
[array([[1], 
  [4], 
  [1], 
  [4]]), array([[2], 
  [5], 
  [2], 
  [5]]), array([[3], 
  [6], 
  [3], 
  [6]])] 

用split函數(shù)可以同時(shí)實(shí)現(xiàn)這兩個(gè)效果,通過(guò)設(shè)置其axis參數(shù)區(qū)別,與組合類(lèi)似,這里不在演示。

三、矩陣

通過(guò)上面對(duì)數(shù)組的操作可以知道,numpy中可以通過(guò)數(shù)組模擬矩陣,但是numpy也有專(zhuān)門(mén)處理矩陣的數(shù)據(jù)結(jié)構(gòu)——matrix。

1.生成矩陣

>>> numpy.mat('1 2 3;4 5 6;7 8 9') 
matrix([[1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9]]) 

2.數(shù)組矩陣轉(zhuǎn)化

矩陣轉(zhuǎn)數(shù)組

>>> m=numpy.mat('1 2 3;4 5 6;7 8 9') 
>>> numpy.array(m) 
array([[1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9]]) 

數(shù)組轉(zhuǎn)矩陣

>>> n=numpy.array(m) 
>>> numpy.mat(n) 
matrix([[1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9]]) 

3.矩陣方法

求逆:

>>> m.I 
matrix([[ -4.50359963e+15, 9.00719925e+15, -4.50359963e+15], 
  [ 9.00719925e+15, -1.80143985e+16, 9.00719925e+15], 
  [ -4.50359963e+15, 9.00719925e+15, -4.50359963e+15]]) 

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持

相關(guān)文章

  • Python中處理YAML文件的正確方法

    Python中處理YAML文件的正確方法

    在現(xiàn)代軟件開(kāi)發(fā)中,YAML(YAML Ain’t Markup Language)因其簡(jiǎn)潔和易于閱讀的特性,被廣泛用于配置文件,Python 作為一種流行的編程語(yǔ)言,提供了多種處理 YAML 文件的庫(kù),本文給大家介紹了Python中處理YAML文件的正確方法,需要的朋友可以參考下
    2024-11-11
  • 使用 Visual Studio Code(VSCode)搭建簡(jiǎn)單的Python+Django開(kāi)發(fā)環(huán)境的方法步驟

    使用 Visual Studio Code(VSCode)搭建簡(jiǎn)單的Python+Djan

    這篇文章主要介紹了使用 Visual Studio Code(VSCode)搭建簡(jiǎn)單的Python+Django開(kāi)發(fā)環(huán)境的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python實(shí)現(xiàn)猜單詞小游戲

    python實(shí)現(xiàn)猜單詞小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)猜單詞小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Django渲染Markdown文章目錄的方法示例

    Django渲染Markdown文章目錄的方法示例

    這篇文章主要介紹了Django渲染Markdown文章目錄的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python實(shí)例詳解遞歸算法

    Python實(shí)例詳解遞歸算法

    遞歸(英語(yǔ):Recursion),又譯為遞回,在數(shù)學(xué)與計(jì)算機(jī)科學(xué)中,是指在函數(shù)的定義中使用函數(shù)自身的方法。遞歸一詞還較常用于描述以自相似方法重復(fù)事物的過(guò)程。本文將詳細(xì)為大家介紹Python中的遞歸算法,需要的可以參考一下
    2022-03-03
  • Python基本知識(shí)之datetime模塊詳解

    Python基本知識(shí)之datetime模塊詳解

    這篇文章主要給大家介紹了關(guān)于Python基本知識(shí)之datetime模塊的相關(guān)資料,Python內(nèi)置的時(shí)間模塊datetime包含下面的模塊包含六個(gè)類(lèi)和兩個(gè)常數(shù),提供了用于處理日期和時(shí)間的類(lèi)和對(duì)應(yīng)的方法,一般用于處理年、月、日、時(shí)、分、秒的統(tǒng)計(jì)和計(jì)算等需求,需要的朋友可以參考下
    2023-08-08
  • Pyramid添加Middleware的方法實(shí)例

    Pyramid添加Middleware的方法實(shí)例

    在pylons的文檔中,有專(zhuān)門(mén)講過(guò)如何添加自己的Middleware, 通過(guò)這些Middleware, 我們可以改變輸入和輸出。這也是WSGI(Web Server Gateway Interface)的優(yōu)勢(shì)和精髓所在,那么在pyramid中,我們?nèi)绾翁砑覯iddleware呢
    2013-11-11
  • Django實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    Django實(shí)現(xiàn)學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)學(xué)生管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • 詳解Django中的ifequal和ifnotequal標(biāo)簽使用

    詳解Django中的ifequal和ifnotequal標(biāo)簽使用

    這篇文章主要介紹了詳解Django中的ifequal和ifnotequal標(biāo)簽使用,Django是重多高人氣Python框架中最為著名的一個(gè),需要的朋友可以參考下
    2015-07-07
  • python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作

    python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作

    這篇文章主要介紹了python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評(píng)論

德令哈市| 盈江县| 丽水市| 蛟河市| 紫金县| 页游| 南昌市| 霍山县| 塔城市| 平南县| 当雄县| 新竹县| 罗田县| 磐安县| 招远市| 扎兰屯市| 双桥区| 闽清县| 博爱县| 尼木县| 壶关县| 北辰区| 德兴市| 久治县| 通海县| 海兴县| 班玛县| 九江市| 金沙县| 阿瓦提县| 通道| 滁州市| 石景山区| 县级市| 科尔| 改则县| 天门市| 吉水县| 冷水江市| 剑川县| 巴南区|