亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
964
2022-05-30
1、np的重要屬性
import numpy as np np.ndim # 數組的維數 np.shape # 數組的形狀 np.size # 數組的元素個數 np.dtype # 數組的元素類型
2、創建數組
1)np.array 你可以使用np.array直接用Python的元組和列表來創建,如果傳遞的是多層嵌套的序列,將創建多維數組。 2)np.arange 為了創建列表,NumPy提供了和 range 類似的函數,通過指定開始值、終值和步長來創建一維數組,同樣為左閉右開。 3)使用zeros()、ones()、empty()函數 np.zeros(shape) # 創建指定大小的數組,數組元素以 0 來填充。 np.ones(shape) # 創建指定形狀的數組,數組元素以 1 來填充。 np.empty(shape) # 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組。 np.full(shape, val) # 根據shape生成一個數組,每個值都為val。 np.eye(n) # 創建一個正方的n*n矩陣(即單位矩陣),對角線為1,其余全為0。
3、打印數組
當你打印一個數組時,NumPy顯示數組的方式和嵌套的列表類似,但是會遵循以下布局: 最后一維從左到右顯示。第二維到最后一維從上到下顯示。剩下的同樣從上到下顯示,以空行分隔。一維數組顯示成一行,二維數組顯示成矩陣,三維數組顯示成矩陣的列表。 當一個數組元素太多,不方便顯示時,NumPy會自動數組的中間部分,只顯示邊角的數據。
4、索引與切片
1)標準使用方法 數組元素的存取方法和Python的標準方法相同 a = np.arange(10) a[5] # 用整數作為下標可以獲取數組中的某個元素 a[3:5] # 用范圍作為下標獲取數組的一個切片,包括a[3]不包括a[5] a[:5] # 省略開始下標,表示從a[0]開始 a[:-1] # 下標可以使用負數,表示從數組后往前數 a[2:4] = 100,101 # 下標還可以用來修改元素的值 a[1:-1:2] # 范圍中的第三個參數表示步長,2表示隔一個元素取一個元素 a[::-1] # 省略范圍的開始下標和結束下標,步長為-1,整個數組頭尾顛倒 a[5:1:-2] # 步長為負數時,開始下標必須大于結束下標 和Python的列表序列不同,通過下標范圍獲取的新的數組是原始數組的一個視圖。它與原始數組共享同一塊數據空間。 2)使用整數序列 當使用整數序列對數組元素進行存取時,將使用整數序列中的每個元素作為下標,整數序列可以是列表或者數組。使用整數序列作為下標獲得的數組不和原始數組共享數據空間。 3)使用布爾數組 當使用布爾數組b作為下標存取數組x中的元素時,將收集數組x中所有在數組b中對應下標為True的元素。使用布爾數組作為下標獲得的數組不和原始數組共享數據空間,注意只對應于布爾數組,不能使用布爾列表。。 布爾數組一般不是手工產生,而是使用布爾運算的ufunc函數產生。 4)多維數組 多維數組的存取和一維數組類似,因為多維數組有多個軸,因此它的下標需要用多個值來表示,NumPy采用組元(tuple)作為數組的下標。對多維數組的迭代是在第一維進行迭代的。如果需要遍歷多維數組的所有元素,可以使用flat這個屬性。
5、數組相關操作
1)切分數組 2)拼接數組 numpy.concatenate 函數用于沿指定軸連接相同形狀的兩個或多個數組。
6、ufunc運算
需要注意的是數組必須具有相同的形狀或符合數組廣播規則。
(1)一元ufunc
ceil(x): 向上最接近的整數,參數是 number arrayfloor(x): 向下最接近的整數,參數是 number arrayrint(x): 四舍五入,參數是 number arraynegative(x): 元素取反,參數是 number arrayabs(x):元素的絕對值,參數是 number arraysquare(x):元素的平方,參數是 number arrayaqrt(x):元素的平方根,參數是 number arraysign(x):計算各元素的正負號, 1(正數)、0(零)、-1(負數),參數是 number arraymodf(x):將數組的小數和整數部分以兩個獨立數組的形式返回,參數是 number arrayisnan(x): 判斷元素是否為 NaN(Not a Number),返回bool,參數是 number 或 array
(2)二元ufunc
add(x, y): 元素相加,x + y,參數是 number arraysubtract(x, y): 元素相減,x – y,參數是 number arraymultiply(x, y): 元素相乘,x * y,參數是 number arraydivide(x, y): 元素相除,x / y,參數是 number arrayfloor_divide(x, y): 元素相除取整數商(丟棄余數),x // y,參數是 number arraymod(x, y): 元素求余數,x % y,參數是 number arraypower(x, y): 元素求次方,x ** y,參數是 number arrayequal(x1, x2 [, y]) : y = x1 == x2 not_equal(x1, x2 [, y]) : y = x1 != x2 less(x1, x2, [, y]) : y = x1 < x2 less_equal(x1, x2, [, y]) : y = x1 <= x2 greater(x1, x2, [, y]) : y = x1 > x2 greater_equal(x1, x2, [, y]) : y = x1 >= x2
7、函數庫
(1)比較運算
allclose(a, b[, rtol, atol, equal_nan]) 如果兩個數組在容差范圍內在元素方面相等,則返回True。 isclose(a, b[, rtol, atol, equal_nan]) 返回一個布爾數組,其中兩個數組在容差范圍內是元素相等的。 array_equal(a1, a2) 如果兩個數組具有相同的形狀和元素,則為真,否則為False。 array_equiv(a1, a2) 如果輸入數組的形狀一致且所有元素相等,則返回True。 greater(x1, x2, /[, out, where, casting, …]) 逐個元素方式返回(x1> x2)的真值。 greater_equal(x1, x2, /[, out, where, …]) 逐個元素方式返回(x1> = x2)的真值。 less(x1, x2, /[, out, where, casting, …]) 逐個元素方式返回。 less_equal(x1, x2, /[, out, where, casting, …]) 逐個元素方式返回。 equal(x1, x2, /[, out, where, casting, …]) 逐個元素返回(x1 == x2)。 not_equal(x1, x2, /[, out, where, casting, …]) 逐個元素返回 Return (x1 != x2)。
(2)三角函數
sin(x, /[, out, where, casting, order, …]) 逐個元素運算三角正弦函數。 cos(x, /[, out, where, casting, order, …]) 逐個元素運算三角余弦函數。 tan(x, /[, out, where, casting, order, …]) 逐個元素運算三角正切函數。 arcsin(x, /[, out, where, casting, order, …]) 逐個元素運算三角反正弦函數。 arccos(x, /[, out, where, casting, order, …]) 逐個元素運算三角反余弦函數。 arctan(x, /[, out, where, casting, order, …]) 逐個元素運算三角反正切函數。 hypot(x1, x2, /[, out, where, casting, …]) 給定直角三角形的“腿”,返回它的斜邊。 arctan2(x1, x2, /[, out, where, casting, …]) 元素弧切線x1/x2正確選擇象限。 degrees(x, /[, out, where, casting, order, …]) 將角度從弧度轉換為度數。 radians(x, /[, out, where, casting, order, …]) 將角度從度數轉換為弧度。 unwrap(p[, discont, axis]) 通過將值之間的差值更改為2*pi補碼來展開。 deg2rad(x, /[, out, where, casting, order, …]) 將角度從度數轉換為弧度。 rad2deg(x, /[, out, where, casting, order, …]) 將角度從弧度轉換為度數。
(3)求總和, 求乘積, 求差異
prod(a[, axis, dtype, out, keepdims]) 返回給定軸上的數組元素的乘積。 sum(a[, axis, dtype, out, keepdims]) 給定軸上的數組元素的總和。 nanprod(a[, axis, dtype, out, keepdims]) 返回給定軸上的數組元素的乘積。 nansum(a[, axis, dtype, out, keepdims]) 返回給定軸上的數組元素的總和。 cumprod(a[, axis, dtype, out]) 返回給定軸上元素的累積乘積。 cumsum(a[, axis, dtype, out]) 返回給定軸上元素的累積和。 nancumprod(a[, axis, dtype, out]) 返回給定軸上的數組元素的累積乘積。 nancumsum(a[, axis, dtype, out]) 返回給定軸上的數組元素的累積和。 diff(a[, n, axis]) 計算沿給定軸的第n個離散差。 ediff1d(ary[, to_end, to_begin]) 數組的連續元素之間的差異。 gradient(f, varargs, *kwargs) 返回N維數組的漸變。 cross(a, b[, axisa, axisb, axisc, axis]) 返回兩個(數組)向量的叉積。 trapz(y[, x, dx, axis]) 沿給定的軸積分使用復合梯形規則運算。
(4)平均數和差異
median(a[, axis, out, overwrite_input, keepdims]) 沿指定軸計算中值。 average(a[, axis, weights, returned]) 計算沿指定軸的加權平均。 mean(a[, axis, dtype, out, keepdims]) 沿指定的軸計算算術平均值。 std(a[, axis, dtype, out, ddof, keepdims]) 計算沿指定軸的標準偏差。 var(a[, axis, dtype, out, ddof, keepdims]) 計算沿指定軸的方差。 nanmedian(a[, axis, out, overwrite_input, …]) 在忽略NAS的情況下,沿指定的軸計算中值。 nanmean(a[, axis, dtype, out, keepdims]) 計算沿指定軸的算術平均值,忽略NAS。 nanstd(a[, axis, dtype, out, ddof, keepdims]) 計算指定軸上的標準偏差,而忽略NAS。 nanvar(a[, axis, dtype, out, ddof, keepdims]) 計算指定軸上的方差,同時忽略NAS。
【百變AI秀】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/296704
AI Numpy Python 數據結構
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。