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