Python數據分析numpy(1)

Python開源的科學計算基礎庫html

1.表示N維數組對象ndarrayc++

2.線性代數、傅里葉變換、隨機數生成數組

3.廣播函數,整合c++、c函數

一.數據的維度spa

1.數據htm

2.數據維度對象

3.一維數據blog

(1)特色索引

(2)Python中的表達方式utf-8

列表、集合類型

(3)列表和數組的區別

數據類型要求不同

4.二維數據

(1)概念,多個一位數據組成,一個覺得數據的組合。

(2)列表

5.多維數據

(1)

(2)列表

6.高維數據

(1)僅利用最基本的二元關係展現數據間的複雜關係

(2)字典類型或者數據表示格式

 

二.numpy庫中的N維數組對象ndarray

1.使用numpy數組緣由:

(1)節省空間

(2)numpy的底層實現靠c語言實現的,提升運行速度。

代碼示例:

2.N維數組對象-ndarray

(1)組成

實際的數據

描述這些數據的元數據(數據維度、數據類型等)

軸、秩

方法 功能
.ndim
.shape

.size

元素個數
.dtype 數據類型
.itemsize 元素所佔的字節

import numpy as np
a=np.array([[0,1,2,3,4],[9,8,7,6,5]])# -*- coding: utf-8 -*-
print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)
print(a.itemsize)

輸出:

2
(2, 5)
10
int32
4

 

(2)要求全部的元素類型相同,數組下標從0開始。

(3)實例

(4)支持那麼多數據類型緣由

(5)不一樣質數據類型

()

3.ndarray數組的建立方法

(1)從Python的列表、元組等等類型建立ndarray數組

x=np.array(list/tuple),detype=數據類型)

不指定元素類型,根據讀入的數據類型肯定,根據最高級肯定數據類型。

 

(2)使用numpy中函數建立ndarray數組,如arange,ones,Zeros等

最經常使用的方法

函數 做用 具體應用
np.arange(n) 相似range()函數,返回ndarray類型,元素從0到-1  
np.ones(shape) 根據shape生成一個全1數組,shape是元組類型 np.ones(2,3)
np.zeros(shape) 根據shape生成一個全0數組,shape是元組類型  
np.full(shape,val) 根據shape生成一個數組,每一個元素值都是val  
np.eye(n) 建立一個證放的n*n單位矩陣,對角線爲1,其他爲0  

代碼示例:

import numpy as np
#arange生成的爲整數類型
print(np.arange(10))
#其餘的都爲浮點數類型
print(np.ones((3,6)))
print(np.zeros((3,6)))
print(np.eye(5))
輸出:

[0 1 2 3 4 5 6 7 8 9]
[[1. 1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1. 1.]]
[[0. 0. 0. 0. 0. 0.]
 [0. 0. 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.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]
生成多維數組

代碼示例:

import numpy as np
x=np.ones((2,3,4))
print(x)
print(x.shape)#最外層到最內層元素變化的方式。

輸出:

[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]]
(2, 3, 4)
 

 

 

(3)從字節流(raw bytes)中建立ndarray數組

(4)從文件讀取特定格式,建立ndarray數組

(5)數據類型多爲浮點數,符合現實計算的思惟。

(6)ndarray數組的變換

astype:建立一個新的數組

(7)數組轉換爲Python中列表

3.ndarray數組的操做

(1)數組的索引和切片

索引:獲取數組中特定元素位置的過程(找到元素在數組中的位置)。

切片:獲取數組元素子集的過程(得到數組元素一部分)。

示例

一維數組索引:和Python列表中同樣。

一維數組的切片:和Python列表切片同樣。

多維數組的索引和切片首先要分辨出對象爲幾維的數組。

多維數組索引:a[1,2,3]表示的是:第一個維度的第二個軸的元素,第二個維度的第三個軸的元素,第三個維度的最後一個軸的第四個位置的元素。(由外而內的去尋找索引位置)

多維數組的切片:a[:,1:3,:],從外而內的尋找切片內容。

代碼示例:

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])
print(a[:,1:3,:])
print(a[:,:,::2])

輸出:

24
[[[ 5  6  7  8]
  [ 9 10 11 12]]

 [[17 18 19 20]
  [21 22 23 24]]]
[[[ 1  3]
  [ 5  7]
  [ 9 11]]

 [[13 15]
  [17 19]
  [21 23]]]
能夠對建立後的ndarray的維度和元素類型進行變換。
4.ndarray的運算

(1)數組與標量之間的運算

數組與標量之間的運算做用與數組的每個元素。

代碼示例:

 

(2)numpy中的一元函數,對數組的運算就是對數組中每個元素的運算。

函數 做用
np.abs(x)  np.fabs(x) 計算數組各元素的絕對值
np.sqrt(x) 計算數組各元素的平方根
np.square(x) 計算數組各元素的平方
np.log(x) 、np.log10(x)、nplog2(x) 計算數組各元素的天然對數、10底數和2底對數
np.ceil(x)、np.floor(x) 計算數組各元素的ceiling值或floor值

代碼示例:

import numpy as np
a=np.arange(24).reshape((2,3,4))
np.square(a)
print(a)
a=np.sqrt(a)
print(a)
a=np.modf(a)
print(a)

輸出:

 

特色:進行一元函數操做後會生成一個新的數組,原來的數組沒有被改變,想要改變原來的數組須要把改變後的值賦給舊的數組。

(3)numpy的二元函數,對兩個數組運算的函數(實際上是對兩數組中的每一個元素的運算)。

代碼示例:

import numpy as np
a=np.arange(24).reshape((2,3,4))
b=np.square(a)
c=np.maximum(a,b)
print(c)
print(a>b)

輸出:

[[[  0   1   4   9]
  [ 16  25  36  49]
  [ 64  81 100 121]]

 [[144 169 196 225]
  [256 289 324 361]
  [400 441 484 529]]]
[[[False False False False]
  [False False False False]
  [False False False False]]

 [[False False False False]
  [False False False False]
  [False False False False]]]
 

附件參考資料連接:http://www.cnblogs.com/WSX1994/articles/9061516.html

相關文章
相關標籤/搜索