1、數據與numpy數組的建立python
一、 python數組的建立數組
python中的固定類型數組:緩存
python中提供了幾種將數組存儲在有效的、固定類型的數據緩存中的選項。內置的數組(array)模塊能夠建立按統一類型的密集數組:dom
這裏的「i」表示的是一個數據類型碼,表示數據爲整型。函數
更實用的是ndarray數組對象,Python的數組對象提供了數組類型的有效存儲,而Numpy爲該數據加上了高效的操做。稍後將會介紹這些操做,這裏先集中展現建立Numpy數組的方法:佈局
二、 Numpy數組的建立ui
從python列表建立數組:spa
建立np數組時須要強調元素類型的一致。若是類型不一樣則會自動向上轉換。orm
2.1dtype參數進行強制類型轉換或類型指定對象
2.2生成嵌套數組
手動建立嵌套數組
使用公式嵌套數組
三、11中建立ndarray數組的高效建立方法
面對大型數組,用Numpy數組時,用Numpy內置方法從頭建立數組時一種高效的方法,如下是幾個示例:
3.1 建立一個元素都爲0 的n * m 的多(2)維數組
np.zeros((維度,行數,列數),dtype = "指定類型(float32/int32/str)")
3.2 建立一個元素都爲1的n*m的多(3)維數組
np.ones((維度,行數,列數),dtype = "指定類型(float32/int32/str)")
3.3建立一個的整數型數組,數組的值是一個線性序列。
np.arange(start[真包含], end[假包含], step)
3.4建立一個50個元素的數組,這50個數均勻地分配到1~10
np.linspace(start, stop, 平均分紅的分數)
3.5 建立一個在0-1之間隨機分佈的由隨機數組成的數組
np.random.random((維度,行數, 列數))
其餘生成隨機數的方法
np.random.randn(維度,行數,列數)
np.random.rand(維度,行數,列數)
3.6 建立一個正態分佈的隨機數數組
np.random.normal(均值, 方差, (維度,行數, 列數))
3.7建立一個服從設置區間的隨機數整數型的數組
np.random.randint(start, stop, (維度,行數, 列數))
3.8 建立一個對角線元素都爲1,其餘位置元素都爲0的單位矩陣
np.eye(行數,列數,dype=’元素類型(默認爲浮點型)’)
3.9建立一個由m*n維未初始化的數組,數組的值是內存空間中的任意值
np.empty(n)
3.10 建立一個指定元素的對角矩陣
Np.diag(n)
3.11建立一個指定行列,和指定內容的數組
Np.full((維度,行數,列數),指定值(能夠是一個數組,也能夠是一個列表或嵌套列表))
2、數組的基本操做
一、查看Nddaray屬性
數組的屬性:
如今咱們定義三個數組, 一維數組, 二維數組, 三維數組,爲了確保你們都能生成同樣的數組, 咱們先設置隨機數種子。
Np.random.seed可使生成隨機數時能夠生成同樣的隨機數
1.1查看數組的形狀
1.2查看數組的維度
1.3 查看數組的總大小
1.4查看數組的數據類型
1.5查看數組中每一個元素的大小(所佔用內存的大小)
1.6查看數組的總大小(佔用內存的大小)
1.7對數組進行轉置
1.8其餘查看屬性的方法
Ndarray.flags
有關數組的內存佈局的信息。
Ndarray.shape
數組維數組。
Ndarray.ndim
數組維數,在Python世界中,維度的數量被稱爲rank。
Ndarray.data
Python緩衝區對象指向數組的數據的開始。
Ndarray.size
數組中的元素總個數。
Ndarray.itemsize
一個數組元素的長度(以字節爲單位)。
Ndarray.dtype
數組元素的數據類型。
Ndarray.T
數組的轉置。
2.Numpy數據類型以及類型轉換
Numpy中的數組比 Python 原生中的數組(只支持整數類型與浮點類型)強大的一點就是它支持更多的數據類型。
2.1 numpy基本數據類型
Numpy常見的基本數據類型以下:
數據類型
描述
bool_
布爾(True或False),存儲爲一個字節
int_
默認整數類型(與C long相同;一般爲int64或int32)
intc
與C int(一般爲int32或int64)相同
intp
用於索引的整數(與C ssize_t相同;一般爲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
半精度浮點:符號位,5位指數,10位尾數
float32
單精度浮點:符號位,8位指數,23位尾數
float64
雙精度浮點:符號位,11位指數,52位尾數
complex_
complex128的簡寫。
complex64
複數,由兩個32位浮點(實數和虛數份量)
complex128
複數,由兩個64位浮點(實數和虛數份量)
雖然有這麼多的數據類型,可是咱們平時用的時候僅須要知道(int,bool,float,complex,str)這幾種就能夠了,暫時不須要去記這麼多。
這些類型均可以在建立ndarray的時候經過dtype來制定
2.2數據類型的轉換
數組直接數據類型的轉換首選是.astype()方法,或者使用類型自己做爲函數。