# _*_coding:utf-8-*_ import numpy as np # å®ä¹ç©éµåéå¹¶è¾åºåéçä¸äºå±æ§ # ç¨np.array()çæç©éµ arr=np.array([[1,2,3], [4,5,6]]) print(arr) print('number of arr dimensions: ',arr.ndim) print('~ ~ ~ shape: ',arr.shape) print('~ ~ ~ size: ', arr.size) # è¾åºç»æï¼ [[1 2 3] [4 5 6]] number of arr dimensions: 2 ~ ~ ~ shape: (2, 3) ~ ~ ~ size: 6 # å®ä¹ä¸äºç¹æ®ç©éµ # æå®ç©éµæ°æ®ç±»å arr=np.array([[1,2,3], [4,5,6]], dtype=np.float64) # æççµènp.intæ¯int32ï¼è¿å¯ä»¥ä½¿ç¨np.int32/np.int64/np.float32/np.float64 print(arr.dtype) # ç¨np.zeros()çæå ¨é¶ç©éµ arr_zeros=np.zeros( (2,3) ) print(arr_zeros) # ç¨np.ones()çæå ¨ä¸ç©éµ arr_ones=np.ones( (2,3) ) print(arr_ones) # çæéæºç©éµnp.random.random() arr_random=np.random.random((2,3)) print(arr_random) # ç¨np.arange()çææ°å arr=np.arange(6,12) print(arr) # ç¨np.arange().reshape()å°æ°å转æç©éµ arr=np.arange(6,12).reshape( (2,3) ) print(arr) # ç¨np.linspace(å¼å§ï¼ç»æï¼å¤å°ç¹åå线段)ï¼åæ ·ä¹å¯ä»¥ç¨reshape() arr=np.linspace(1,5,3) print(arr) # ç©éµè¿ç® arr1=np.array([1,2,3,6]) arr2=np.arange(4) # ç©éµåæ³ï¼å æ³åç arr_sub=arr1-arr2 print(arr1) print(arr2) print(arr_sub) # ç©éµä¹æ³ arr_multi=arr1**3 # æ±æ¯ä¸ªå ç´ çç«æ¹ï¼å¨pythonä¸å¹è¿ç®ç¨**æ¥è¡¨ç¤º print(arr_multi) arr_multi=arr1*arr2 # å ç´ é个ç¸ä¹ print(arr_multi) arr_multi=np.dot(arr1, arr2.reshape((4,1))) # 维度1*4å4*1ç©éµç¸ä¹ print(arr_multi) arr_multi=np.dot(arr1.reshape((4,1)), arr2.reshape((1,4))) # 维度4*1å1*4ç©éµç¸ä¹ print(arr_multi) arr_multi=arr1.dot(arr2.reshape((4,1))) # ä¹å¯ä»¥ä½¿ç¨ç©éµå.doc(ç©éµå) print(arr_multi) # ä¸è§è¿ç®ï¼np.sin()/np.cos()/np.tan() arr_sin=np.sin(arr1) print(arr_sin) # é»è¾è¿ç® print(arr1<3) # æ¥çarr1ç©éµä¸åªäºå ç´ å°äº3ï¼è¿å[ True True False False] # ç©éµæ±åï¼æ±ç©éµæå¤§æå°å¼ arr1=np.array([[1,2,3], [4,5,6]]) print(arr1) print(np.sum(arr1)) # ç©éµæ±å print(np.sum(arr1,axis=0)) # ç©éµæ¯åæ±å print(np.sum(arr1,axis=1).reshape(2,1)) # ç©éµæ¯è¡æ±å print(np.min(arr1)) # æ±ç©éµæå°å¼ print(np.min(arr1,axis=0)) print(np.min(arr1,axis=1)) print(np.max(arr1)) # æ±ç©éµæå¤§å¼ print(np.mean(arr1)) # è¾åºç©éµå¹³åå¼ï¼ä¹å¯ä»¥ç¨arr1.mean() print(np.median(arr1)) # è¾åºç©éµä¸ä½æ° # è¾åºç©éµæäºå¼çä½ç½® arr1=np.arange(2,14).reshape((3,4)) print(arr1) print(np.argmin(arr1)) # è¾åºç©éµæå°å¼çä½ç½®ï¼0 print(np.argmax(arr1)) # è¾åºç©éµæå¤§å¼çä½ç½®ï¼11 print(np.cumsum(arr1)) # è¾åºåä¸ä¸ªæ°çåï¼å两个æ°çåï¼çç print(np.diff(arr1)) # è¾åºç¸é»ä¸¤ä¸ªæ°çå·®å¼ arr_zeros=np.zeros((3,4)) print(np.nonzero(arr_zeros)) #è¾åºç©éµéé¶å ç´ ä½ç½®ï¼è¿åå¤ä¸ªè¡åéï¼ç¬¬i个è¡åé表示第i个维度 print(np.nonzero(arr1)) print(np.sort(arr1)) # ç©éµéè¡æåº print(np.transpose(arr1)) # ç©éµè½¬ç½®ï¼ä¹å¯ä»¥ç¨arr1.T print(np.clip(arr1,5,9)) #å°ç©éµä¸å°äº5çæ°ç½®5ï¼å¤§äº9çæ°ç½®9 # numpyç´¢å¼ arr1=np.array([1,2,3,6]) arr2=np.arange(2,8).reshape(2,3) print(arr1) print(arr1[0]) # ç´¢å¼ä»0å¼å§è®¡æ° print(arr2) print(arr2[0][2]) # arr[è¡][å]ï¼ä¹å¯ä»¥ç¨arr[è¡,å] print(arr2[0,:]) # ç¨:æ¥ä»£è¡¨ææå ç´ çææ print(arr2[0,0:3]) # 表示è¾åºç¬¬0è¡ï¼ä»ç¬¬0åå°ç¬¬2åææå ç´ # 注æpythonç´¢å¼ä¸è¬æ¯å·¦éå³å¼ # éè¿forå¾ªç¯æ¯æ¬¡è¾åºç©éµçä¸è¡ for row in arr2: print(row) # å¦æè¦æ¯æ¬¡è¾åºç©éµçä¸åï¼å°±å å°ç©éµè½¬ç½® arr2_T=arr2.T print(arr2_T) for row in arr2_T: print(row) # å°ç©éµåæä¸è¡é个è¾åºå ç´ arr2_flat=arr2.flatten() print(arr2_flat) for i in arr2.flat: # ä¹å¯ä»¥ç¨arr2.flatten() print(i) # ç©éµåå¹¶ä¸åå² # ç©éµåå¹¶ arr1=np.array([1,2,3,6]) arr2=np.arange(4) arr3=np.arange(2,16+1,2).reshape(2,4) print(arr1) print(arr2) print(arr3) arr_hor=np.hstack((arr1,arr2)) # æ°´å¹³åå¹¶ï¼horizontal arr_ver=np.vstack((arr1,arr3)) # åç´åå¹¶ï¼vertical print(arr_hor) print(arr_ver) # ç©éµåå² print('arr3: ',arr3) print(np.split(arr3,4,axis=1)) # å°ç©éµæåååæ4å print(np.split(arr3,2,axis=0)) # å°ç©éµæè¡ååæ2å print(np.hsplit(arr3,4)) # å°ç©éµæåååæ4å print(np.vsplit(arr3,2)) # å°ç©éµæè¡ååæ2å print(np.array_split(arr3,3,axis=1)) # å°ç©éµè¿è¡ä¸åçåå # numpyå¤å¶ï¼æµ å¤å¶ï¼æ·±å¤å¶ # æµ å¤å¶ arr1=np.array([3,1,2,3]) print(arr1) a1=arr1 b1=a1 # éè¿ä¸è¿°èµå¼è¿ç®ï¼arr1,a1,b1齿åäºåä¸ä¸ªå°åï¼æµ å¤å¶ï¼ print(a1 is arr1) print(b1 is arr1) print(id(a1)) print(id(b1)) print(id(arr1)) # ä¼åç°éè¿b1[0]æ¹åå 容ï¼arr1,a1,b1çå 容齿¹åäº b1[0]=6 print(b1) print(a1) print(arr1) # æ·±å¤å¶ arr2=np.array([3,1,2,3]) print('\n') print(arr2) b2=arr2.copy() # æ·±å¤å¶ï¼æ¤æ¶b2æ¥æä¸åäºarr2çç©ºé´ a2=b2.copy() # éè¿ä¸è¿°èµå¼è¿ç®ï¼arr1,a1,b1齿åäºä¸åçå°åï¼æ·±å¤å¶ï¼ print(id(arr2)) print(id(a2)) print(id(b2)) # æ¤æ¶æ¹åb2,a2çå¼ï¼äºä¸å½±å b2[0]=1 a2[0]=2 print(b2) print(a2) print(arr2) # 线æ§ä»£æ°æ¨¡åï¼linalgï¼ # æ±èæ° a=np.array([5,12]) print(a) b=np.linalg.norm(a) # normè¡¨ç¤ºèæ°ï¼é»è®¤æ±2èæ°ï¼ord=1æ±1èæ°ï¼ord=np.infæ±æ ç©·èæ° print(b) # æ±ç©éµç迹ãè¡åå¼ãç§©ãç¹å¾å¼ãç¹å¾åé b = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) print(np.trace(b)) # 15ï¼æ±ç©éµç迹ï¼ä¸»å¯¹è§çº¿ä¸å个å ç´ çæ»åï¼ c=np.linalg.det(b) print(c) # è¾åºä¸ä¸ªå¾å°çå¼6.66133814775e-16ï¼æ±ç©éµçè¡åå¼å¼ # 妿叿è¾åºä¸º0ï¼ä½¿ç¨round(c, 2)ï¼åèäºå ¥ä¿çå°æ°ç¹åä¸¤ä½ # ä¸è¿å¯¹ç²¾åº¦è¦æ±é«å¯ä»¥ä½¿ç¨decimal模å c=np.linalg.matrix_rank(b) print(c) # 2ï¼æ±ç©éµçç§© u,v=np.linalg.eig(b) # u为ç¹å¾å¼ print(u) print(v) # ç©éµåè§£ # Choleskyå解并é建 d = np.array([ [2, 1], [1, 2] ]) l = np.linalg.cholesky(d) print(l) # å¾å°ä¸ä¸è§ç©éµ e=np.dot(l, l.T) print(e) # é建å¾å°ç©éµd # 坹䏿£å®ç©éµï¼è¿è¡SVDå解并é建 U, s, V = np.linalg.svd(d) S = np.array([ [s[0], 0], [0, s[1]] ]) print(np.dot(U, np.dot(S, V))) # é建å¾å°ç©éµd # ç©éµä¹æ³ # https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html#numpy.dot print(np.dot(3, 4)) # 12ï¼0-Dç©éµç¸ä¹ï¼ä¹å°±æ¯æ éç¸ä¹ï¼ print(np.dot([2j, 3j], [2j, 3j])) # (-13+0j)ï¼1-Dç©éµç¸ä¹ï¼å®é 䏿¯åéåç¹ç§¯ï¼ a=[[1, 0], [0, 1]] b=[[4, 1, 0], [2, 2, 0]] print(np.dot(a, b)) ''' array([[4, 1], [2, 2]]) 2-Dç©éµç¸ä¹ è¿éæ¯2*2ç©éµå2*3ç©éµç¸ä¹ï¼ç»æä¸º2*3ç©éµ ''' a=[[1, 0], [1, 2]] b=[2,2] c=np.dot(a,b) print(c) ''' [2 6] 注æè¿ébæ¯åé numpyå¤çæ¶å¹¶ä¸æ¯æç §ç©éµä¹æ³è§åè®¡ç® èæ¯åéç¹ç§¯ ä¹å°±æ¯np.dot([1, 0],[1, 2])ånp.dot([1, 2],[2,2]) ''' # åå个å®éªæ¥åºå«åé乿³åç©éµä¹æ³ b=np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # è¿éææä¸ä¸ï¼np.array([1,0,1])æ¯3ç»´åéï¼è䏿¯1*3çç©éµ c1=np.array([[1,0,2]]) print(c1.shape) # (1, 3)ï¼è¿æ¯ä¸ä¸ª1*3çç©éµ c2=np.array([1,0,2]) print(c2.shape) # (3,)ï¼è¿æ¯ä¸ä¸ª3ç»´åé # print(np.dot(b,c1)) # æ¥éï¼ä¸ç¬¦åç©éµä¹æ³è§å print(np.dot(b,c2)) # [ 7 16 25]ï¼ç¹ç§¯è¿ç® print(np.dot(c1,b)) # [[15 18 21]]ï¼ç©éµä¹æ³è¿ç®è§å print(np.dot(c2,b)) # [15 18 21]ï¼ç¹ç§¯è¿ç® # è¿è¦è¡¥å ä¸ä¸ï¼å¦ææ¯ç¨pythonèªå¸¦ç*è¿ç®ç¬¦è®¡ç®åæ¯å¹¿ææºå¶ print(b*c1) # print(b*c2)ç»æä¸æ · ''' [[ 1 0 6] [ 4 0 12] [ 7 0 18]] ''' print(b+c1) # print(b*c2)ç»æä¸æ · ''' [[ 2 2 5] [ 5 5 8] [ 8 8 11]] '''