您好,登錄后才能下訂單哦!
本篇內容介紹了“python中numpy的作用是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
To be continue NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
引入文件
import numpy as np
ndarray 一種多維數組對象
創(chuàng)建array 從python列表創(chuàng)建 array所有的數據類型都是相同的。如果傳入了擁有不同類型元素的列表,array會嘗試自動轉換
datal = np.array([1,3,4,2])
也可以傳入多維列表
datal2 = np.array([[1,2,3,4],[3,4,5,6]])
通過函數創(chuàng)建數組 該方法比python列表創(chuàng)建速度快 函數 作用 np.zeros(10,dtype=int) 創(chuàng)建值為0數據類型為int np.ones((3,5),dtype=float) 創(chuàng)建值為1數據類型為float np.empty((2,3,2)) 創(chuàng)建空數組時,只是取出對應的內存大小,里面可能因內存殘留而有其他數據 np.full((3,4),3.14) 創(chuàng)建一個34且初始化為3.14的數組 np.arange(0,20,2) 從0到20,步長為2 np.linspace(0,1,5) 從0到1均勻生成5個數(即,0,0.25,0.5,0.75,1) np.eye(num) 創(chuàng)建單位矩陣 np.random.random((3,3)) 創(chuàng)建一個33的,在0-1之間均勻分布的隨機數組 np.random.normal(0,1,(3,3)) 創(chuàng)建一個33的,均值為0,方差為1的正態(tài)分布隨機數組 np.random.randint(0,10,(3,3)) [0,10)之間的33隨機整數數組 np.random.seed() 隨機數種子 numpy數據類型 Data type Description bool_ Boolean (True or False) stored as a byte int_ Default integer type (same as C long; normally either int64 or int32) intc Identical to C int (normally int32 or int64) intp Integer used for indexing (same as C ssize_t; normally either int32 or int64) int8 Byte (-128 to 127) int16 Integer (-32768 to 32767) int32 Integer (-2147483648 to 2147483647) int64 Integer (-9223372036854775808 to 9223372036854775807) uint8 Unsigned integer (0 to 255) uint16 Unsigned integer (0 to 65535) uint32 Unsigned integer (0 to 4294967295) uint64 Unsigned integer (0 to 18446744073709551615) float_ Shorthand for float64. float16 Half precision float: sign bit, 5 bits exponent, 10 bits mantissa float32 Single precision float: sign bit, 8 bits exponent, 23 bits mantissa float64 Double precision float: sign bit, 11 bits exponent, 52 bits mantissa complex_ Shorthand for complex128. complex64 Complex number, represented by two 32-bit floats complex128 Complex number, represented by two 64-bit floats 字符 對應類型 b 布爾型 i (有符號) 整型 u 無符號整型 integer f 浮點型 c 復數浮點型 m timedelta(時間間隔) M datetime(日期時間) O (Python) 對象 S, a (byte-)字符串 U Unicode V 原始數據 (void) 數據類型轉換 astype('數據類型') 不修改原數組,只會返回一個數組的拷貝, 浮點數轉換為整數,會截斷小數部分 字符串只能先轉換為浮點數,不能直接轉換為整數
數組屬性及方法 屬性 ndim 數組維度 shape 返回一個各維度大小的元組 size 元素總數 dtype 返回該數組的數據類型 itemsize 每個元素占內存大小 nbytes 整個數組占用內存
方法 copy() -- 可創(chuàng)建數組的副本 reshape() -- 重新調整矩陣的行數、列數、維數,返回一個新的數組。與原數組公用內存
np.newaxis -- 在當前位置增加一個一維,如:x1[np.newaxis,:]表示增加一行
np.concatenate() -- 可一次拼接兩個及以上數組
(a1, a2, …):要拼接的數組 axis=0:沿著哪個維度進行拼接,默認為0,橫向切分。為1時,縱向切分 np.vstack() -- 垂直棧,在第一維(行)拼接 np.hstack() -- 水平棧,在第二維(列)拼接
np.split() -- 把一個數組從左到右按順序切分
ary:要切分的數組 indices_or_sections:如果是一個整數,就用該數平均切分,如果是一個數組,為沿軸切分的位置(左開右閉) axis=0:沿著哪個維度進行切向,默認為0,橫向切分。為1時,縱向切分 np.vsplit() -- 垂直切分 np.hsplit() -- 水平切分
索引、切片 索引 可使用python常用的方法 除此外,還可用逗號分隔的索引元組獲取元素 num[0,0] == num[0][0]
布爾型索引 支持常用邏輯運算符,可用原數組對比較后的結果進行選擇,返回值為True的數;可進行運算,True為1,False為0 邏輯運算符 numpy函數
np.greater < np.less == np.equal != np.notequal <= np.less_equal = np.greater_equal
花式索引 又稱花哨索引,其意義是根據索引數組的值作為目標數組的某個軸的下標來取值。 對于使用一維整型數組作為索引,如果目標是一維數組,那么索引的結果就是對應位置的元素;如果目標是二維數組,那么就是對應下標的行。
對于使用兩個整型數組作為索引的時候,那么結果是按照順序取出對應軸的對應下標的值。例如,以[0,1],[2,0]這兩個整型數組作為索引,那么對于二維數組,則取出(0,1),(2,0)這些坐標對應的元素。 切片 可使用python常用的方法 基本語法仍為:num[start:stop:step]
對于多維數組,在同一個[]內以逗號分隔切片的維度,例如: num[:2,:3] ---- 選取前兩行前三列
選取后產生的是原數組的視圖,而不是數據的副本 調用copy()函數可以新建副本
常用數組方法 1 2 np.sort() 排序,返回原數據的副本 np.argsort() 返回排序后的下標 numpy.lexsort((b,a)) 借助b對a排序,返回a下標,當a某兩位相同時看對應位置的b大小 numpy.searchsorted() 尋找某個數應該插在數組的什么位置上,這個數組必須是按序排列的 num.sort() 就地排序,影響原數組 np.partation() 把k-th大小的元素放在k-th的位置,小于的數字放在左邊,大于的放在右邊 sorted() 可以對所有可迭代的對象進行排序操作。 數學函數 三角函數 numpy.sin(x):三角正弦。 numpy.cos(x):三角余弦。 numpy.tan(x):三角正切。 numpy.arcsin(x):三角反正弦。 numpy.arccos(x):三角反余弦。 numpy.arctan(x):三角反正切。 numpy.hypot(x1,x2):直角三角形求斜邊。 numpy.degrees(x):弧度轉換為度。 numpy.radians(x):度轉換為弧度。 numpy.deg2rad(x):度轉換為弧度。 numpy.rad2deg(x):弧度轉換為度。
雙曲函數 numpy.sinh(x):雙曲正弦。 numpy.cosh(x):雙曲余弦。 numpy.tanh(x):雙曲正切。 numpy.arcsinh(x):反雙曲正弦。 numpy.arccosh(x):反雙曲余弦。 numpy.arctanh(x):反雙曲正切。
數值修約 數值修約, 又稱數字修約, 是指在進行具體的數字運算前, 按照一定的規(guī)則確定一致的位數, 然后舍去某些數字后面多余的尾數的過程 numpy.around(a):平均到給定的小數位數。 numpy.round_(a):將數組舍入到給定的小數位數。 numpy.rint(x):修約到最接近的整數。 numpy.fix(x, y):向 0 舍入到最接近的整數。 numpy.floor(x):返回輸入的底部(標量 x 的底部是最大的整數 i)。 numpy.ceil(x):返回輸入的上限(標量 x 的底部是最小的整數 i). numpy.trunc(x):返回輸入的截斷值。
求和、求積、差分 numpy.sum(a, axis, dtype, keepdims):返回指定軸上的數組元素的總和。 numpy.prod(a, axis, dtype, keepdims):返回指定軸上的數組元素的乘積。 numpy.nanprod(a, axis, dtype, keepdims):返回指定軸上的數組元素的乘積, 將 NaN 視作 1。 numpy.nansum(a, axis, dtype, keepdims):返回指定軸上的數組元素的總和, 將 NaN 視作 0。 numpy.cumprod(a, axis, dtype):返回沿給定軸的元素的累積乘積。 numpy.cumsum(a, axis, dtype):返回沿給定軸的元素的累積總和。 numpy.nancumprod(a, axis, dtype):返回沿給定軸的元素的累積乘積, 將 NaN 視作 1。 numpy.nancumsum(a, axis, dtype):返回沿給定軸的元素的累積總和, 將 NaN 視作 0。 numpy.diff(a, n, axis):計算沿指定軸的第 n 個離散差分。 numpy.ediff1d(ary, to_end, to_begin):數組的連續(xù)元素之間的差異。 numpy.gradient(f):返回 N 維數組的梯度。 numpy.cross(a, b, axisa, axisb, axisc, axis):返回兩個(數組)向量的叉積。 numpy.trapz(y, x, dx, axis):使用復合梯形規(guī)則沿給定軸積分。
指數、對數 numpy.exp(x):計算輸入數組中所有元素的指數。 numpy.expm1(x):對數組中的所有元素計算 exp(x) - 1. numpy.exp2(x):對于輸入數組中的所有 p, 計算 2 ** p。 numpy.log(x):計算自然對數。 numpy.log10(x):計算常用對數。 numpy.log2(x):計算二進制對數。 numpy.log1p(x):log(1 + x)。 numpy.logaddexp(x1, x2):log2(2x1 + 2x2)。 numpy.logaddexp2(x1, x2):log(exp(x1) + exp(x2))。
算術運算 numpy.negative(x):求對應負數。 numpy.add(x1, x2):加。 numpy.subtract(x1, x2):減。 numpy.multiply(x1, x2):乘。 numpy.divide(x1, x2):除。 numpy.reciprocal(x):求倒數 1/x。 numpy.power(x1, x2):類似于 x1^x2。 numpy.fmod(x1, x2):返回除法的元素余項。 numpy.mod(x1, x2):返回余項。 numpy.modf(x1):返回數組的小數和整數部分。 numpy.remainder(x1, x2):返回除法余數。
點積 numpy.dot(a,b):求解兩個數組的點積。 numpy.vdot(a,b):求解兩個向量的點積。 numpy.inner(a,b):求解兩個數組的內積。 numpy.outer(a,b):求解兩個向量的外積。 numpy.matmul(a,b):求解兩個數組的矩陣乘積。 numpy.tensordot(a,b):求解張量點積。 numpy.kron(a,b):計算 Kronecker 乘積。
聚合、統(tǒng)計 numpy.mean:平均數 numpy.median:中位數 numpy.var:方差 numpy.std:標準差 numpy.max:最大值 numpy.min:最小值 numpy.argmax:最大值索引 numpy.argmin:最小值索引 numpy.percentile:計算基于元素排序的統(tǒng)計值 numpy.any:驗證是否有元素為真 numpy.all:驗證是否所有元素均為真
其他 numpy.angle(z, deg):返回復參數的角度。 numpy.real(val):返回數組元素的實部。 numpy.imag(val):返回數組元素的虛部。 numpy.conj(x):按元素方式返回共軛復數。 numpy.convolve(a, v, mode):返回線性卷積。 numpy.sqrt(x):平方根。 numpy.cbrt(x):立方根。 numpy.square(x):平方。 numpy.absolute(x):絕對值, 可求解復數。 numpy.fabs(x):絕對值。 numpy.sign(x):符號函數。 numpy.maximum(x1, x2):兩數組各個對應位置最大值。 numpy.minimum(x1, x2):兩數組各個對應位置最小值。 numpy.nan_to_num(x):用 0 替換 NaN。 numpy.interp(x, xp, fp, left, right, period):線性插值。
矩陣運算 numpy.linalg.cholesky(a):Cholesky 分解。 numpy.linalg.qr(a ,mode):計算矩陣的 QR 因式分解。 numpy.linalg.svd(a ,full_matrices,compute_uv):奇異值分解。 numpy.linalg.eig(a):計算正方形數組的特征值和右特征向量。 numpy.linalg.eigh(a, UPLO):返回 Hermitian 或對稱矩陣的特征值和特征向量。 numpy.linalg.eigvals(a):計算矩陣的特征值。 numpy.linalg.eigvalsh(a, UPLO):計算 Hermitian 或真實對稱矩陣的特征值。 numpy.linalg.norm(x ,ord,axis,keepdims):計算矩陣或向量范數。 numpy.linalg.cond(x ,p):計算矩陣的條件數。 numpy.linalg.det(a):計算數組的行列式。 numpy.linalg.matrix_rank(M ,tol):使用奇異值分解方法返回秩。 numpy.linalg.slogdet(a):計算數組的行列式的符號和自然對數。 numpy.trace(a ,offset,axis1,axis2,dtype,out):沿數組的對角線返回總和。 numpy.linalg.solve(a,b):求解線性矩陣方程或線性標量方程組。 numpy.linalg.tensorsolve(a,b ,axes):為 x 解出張量方程a x = b numpy.linalg.lstsq(a,b ,rcond):將最小二乘解返回到線性矩陣方程。 numpy.linalg.inv(a):計算逆矩陣。 numpy.linalg.pinv(a ,rcond):計算矩陣的(Moore-Penrose)偽逆。 numpy.linalg.tensorinv(a ,ind):計算N維數組的逆。
“python中numpy的作用是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。