欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

一、數(shù)組簡介

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

ndarray由兩部分組成:

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

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

ndarray 的重要屬性包括: 

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

二、數(shù)組的使用

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

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

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

array,也就是數(shù)組,是numpy中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),最關(guān)鍵的屬性是維度和元素類型,在numpy中,可以非常方便地創(chuàng)建各種不同類型的多維數(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語法一致,不再舉例。

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 #元素類型 
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)這兩種方式,通過指定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è)效果,通過設(shè)置其axis參數(shù)區(qū)別,與組合類似,這里不在演示。

三、矩陣

通過上面對(duì)數(shù)組的操作可以知道,numpy中可以通過數(shù)組模擬矩陣,但是numpy也有專門處理矩陣的數(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é)

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

相關(guān)文章

最新評(píng)論