Python中的numpy模塊解析


numpy

1.  創建對象

維度(dimensions):軸

軸的個數:秩(rank)

Numpy最重要的一個特點就是其N維數組對象(即ndarray)

創建數組最簡單的函數就是用array函數:

Import numpy

data = [[1,2,3],[2,3,4],[4,5,6]]

ndarray_object = numpy.array(data)

ndarray_object = numpy.ones((3,4))

ndarray_object = numpy.zeros((3,4))

array 將輸入數據(列表、元組、數組或者其他序列類型)轉換為ndarray。要么推斷出dtype,要么顯示制定dtype。默認直接復制輸入數據。

asarray 將輸入轉換為ndarray,如果輸入本身就是一個ndarray就不進行復制。

arrange 類似於內置的range,但返回的是一個ndarray而不是列表。

ones,ones_like 根據制定的形狀和dtype創建一個全1數組。ones_like一另一個數組為參數,並根據其形狀和dtype創建一個全1數組。

zeros,zeros_like 類似於ones和ones_like,只不過產生的是全0數組而已。

empty,empty_like 創建新數組,只分配內存空間但不填充任何值。

eye,identity 創建一個正方的N x N 單位矩陣(對角線為1,其余為0)

 

2.  ndarray的數據類型

dtype()是一個特殊的對象,它含有ndarray將一塊內存解釋為特定數據類型所需的信息。

numpy中的數據類型轉換,不能直接改原數據的dtype!只能用函數astype()。

 

3.  數組與標量的運算

大小相等的數組之間的任何算術運算都會將運算進行到元素級。

同樣,數組和標量的算術運算也會將那個標量傳播到各個元素。

不同大小的數組之間的運算叫做廣播。

4.  基本的索引和切片

>>>import numpy as np

>>>a=[1,2,3,4,5]

>>>np.array(a)

>>>array([1, 2, 3, 4, 5])

>>>b=np.array(a)

>>>b[1:3]

>>>array([2, 3])

>>>c=b[1:3]

>>>c

>>>array([2, 3])

>>>c[:]=12

>>>a

>>>[1, 2, 3, 4, 5]

>>>b

>>>array([ 1, 12, 12,  4,  5])

如果你想得到的是ndarray切片的一份副圖而非視圖,就需要顯示低進行復制操作例如,

b[2:3].copy。

>>>names = np.array([["ryan"],["tom"],["hello"],["lucy"]])

>>>names

array([['ryan'],

       ['tom'],

       ['hello'],

       ['lucy']], dtype='|S5')

>>>names[2]="whathello"

>>>names

array([['ryan'],

       ['tom'],

       ['whath'],

       ['lucy']], dtype='|S5')

>>>b = np.array([["ryan"],["tom"],["whathello"],["lucy"]])

>>>b

array([['ryan'],

       ['tom'],

       ['whathello'],

       ['lucy']], dtype='|S9')

>>>b=="ryan"

array([[ True],

       [False],

       [False],

       [False]])

Python關鍵字and 和 or在布爾數組中無效。

 

5.  數組轉置和軸對換

>>>a=np.arange(15).reshape((3,5))

>>>a

array([[ 0,  1,  2,  3,  4],

       [ 5,  6,  7,  8,  9],

       [10, 11, 12, 13, 14]])

6.     函數和方法method總覽

# 1.創建數組

arrange, array, copy, empty_like, eye, fromfile, fromfunction, identity, linspace, logspace, mgrid, ogrid, ones, ones_like, r, zeros, zeros_like

# 2.轉化

astype, atleast ld, atleast 2d, atleast 3d, mat

# 3.操作

array split, column stack, concatenate, diagonal, dsplit, dstack, hsplit, hstack, item, newsxis,ravel, repeat, reshape, resize, squeeze,swapaxes, take,transpose

# 4.詢問

all, any, nonzero, where

# 5.排序

argmax, argmin, argsort, max, min, ptp, searchsorted, sort

# 6.運算

choose, compress, cumprod, cumsum, inner, fill, imag, prod, putmask, real, sum

# 7.基本統計

cov, mean, std, var

# 8.基本線性代數

cross, dot, outer, svd, vdot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM