numpy之-概要,數據,類型和示例

學習numpy

前言

大學學習一直使用matlab處理矩陣,行列式運算。matlab功能強大,確實好用,可是這麼多年基本忘光了。如今工做中推薦算法,數據處理,機器學習,人工智能,數據分析處理確實有必定須要,並且目前不少方面些欠缺,須要完善這方面的知識,也就須要把矩陣,行列式等相關的東西再拾回來。主要是最近發現numpy,matplotlab,pandas,scipy能夠徹底替代matlab,並且各個模塊免費的,還由於有至關豐富的網絡教程。那既然各個條件都知足,因此決定靜下心來好好的學習一下這些東西,想最終學以至用。首先學習numpy,一週左右弄清全部的概念和使用,會有4-6篇文章。python


numpy相關說明:

NumPy 是一個運行速度很是快的數學庫,主要用於數組計算。支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫,包含:算法

  1. 一個強大的N維數組對象 ndarray
  2. 廣播功能函數
  3. 整合 C/C++/Fortran 代碼的工具
  4. 線性代數、傅里葉變換、隨機數生成等功能
numpy使用pip安裝
1, 目前最新版都已經內置pip模塊
python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
   
複製代碼
2, 檢測是否安裝成功
>>> import numpy as np
>>> np.__version__
'1.16.3'
複製代碼
3, NumPy Ndarray 對象

ndarray是一個N維,相同類型的數據的組合,每一個元素佔用相同類型的內存空間,而且以0開始索引。 ndarray 內部由如下內容組成:數組

  1. 一個指向數據(內存或內存映射文件中的一塊數據)的指針。
  2. 數據類型或 dtype,描述在數組中的固定大小值的格子。
  3. 一個表示數組形狀(shape)的元組,表示各維度大小的元組。
  4. 一個跨度元組(stride),其中的整數指的是爲了前進到當前維度下一個元素須要"跨過"的字節數。
4, 建立ndarray對象

下面經過實例理解:bash

  • 經過列表建立一維ndarray對象:
>>> a = [1,2,3,4]
>>> dt = np.array(a)
>>> print(dt)
[1 2 3 4]
複製代碼
  • 經過列表建立二維ndarray對象:
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a)
>>> print(dt)
[[1 2 3]
 [4 5 6]]
複製代碼
  • 經過列表建立多維ndarray對象:
>>> a = [[[1,2,3]],[[4,5,6]]]
>>> dt = np.array(a)
>>> print(dt)
[[[1 2 3]]

 [[4 5 6]]]
複製代碼
帶有類型的ndarray對象
  • 經過列表建立帶有dtype=float的ndarray對象:
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a,dtype='float')
>>> 
>>> print(dt)
[[1. 2. 3.]
 [4. 5. 6.]]
複製代碼
  • 經過列表建立帶有dtype=float的ndarray對象:
>>> a = [[1,2,3],[4,5,6]]
>>> dt = np.array(a,dtype='complex')
>>> print(dt)
[[1.+0.j 2.+0.j 3.+0.j]
 [4.+0.j 5.+0.j 6.+0.j]]
>>> 

複製代碼
下面介紹一下上面說的dtype類型

dtype類型和Python中的數據類型同樣,用來標識變量類型,不過numpy中的數據類型遠比python類型要複雜,咱們本章只作簡單的介紹,後面會有單獨的章節詳細介紹。網絡

  • 整數類型:(分爲有符號和無符號類型)
類型名 說明
int_ 默認類型 int32或者int64
int8 有符號整數 (-128 到 127)
int16 有符號整數(-32768 到 32767)
int32 有符號整數(-2147483648 到2147483647)
int64 有符號整數(-9223372036854775808 到 9223372036854775807)
uint8 無符號整數(0 到 255)
uint16 無符號整數(0 到 65535)
uint32 無符號整數(0 到 4294967295)
uint64 無符號整數(0 到 18446744073709551615)
  • 浮點類型
類型名 說明
float_ float64的簡寫類型
float16 半精度浮點數,包括:1 個符號位,5 個指數位,10 個尾數位
float32 半精度浮點數,包括:1 個符號位,8 個指數位,32 個尾數位
float64 半精度浮點數,包括:1 個符號位,11 個指數位,52 個尾數位
  • 複數類型
類型名 說明
complex_ complex128的簡寫類型,即 128 位複數
complex64 表示雙 32 位浮點數(實數部分和虛數部分)
complex128 表示雙 64 位浮點數(實數部分和虛數部分)

使用示例簡單理解:機器學習

複製代碼

待續。。。。ide

相關文章
相關標籤/搜索