




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 .導(dǎo)入numpy庫并簡寫為np(固(提示:importas)importnumpyasnp2 .打印numpy的版本和配置說明(得(提示:np.version,np.show_config)print(np._version_)np.show_config()3 .創(chuàng)建一個長度為10的空向量(向(提示:np.zeros)Z=np.zeros(10)print(Z)4 .如何找到任何一個數(shù)組的內(nèi)存大???(冏(提示:size,itemsize)Z=np.zeros(10,10)print("%dbytes"%(Z.size*乙itemsize)5 .如何從命令行得到nump
2、y中add函數(shù)的說明文檔?(向(提示:)(numpy.add)add(x1,x2,/,out=None,*,where=True,casting='same_kind',order='K',dtype=None,subok=True,signature,extobj)6 .創(chuàng)建一個長度為10并且除了第五個值為1的空向量(冏(提示:array4)Z=np.zeros(10)Z4=1print(Z)7 .創(chuàng)建一個值域范圍從10到49的向量(冏(提示:np.arange)Z=np.arange(10,50)print(Z)8 .反轉(zhuǎn)一
3、個向量(第一個元素變?yōu)樽詈笠粋€)(向(提示:array:-1)Z=np.arange(50)Z=Z:-1print(Z)9 .創(chuàng)建一個3x3并且值從0到8的矩陣(冏(提示:reshape)Z=np.arange(9).reshape(3,3)print(Z)10 .找到數(shù)組1,2,0,0,4,0中非0元素的位置索引(冏(提示:np.nonzero)nz=np.nonzero(1,2,0,0,4,0)print(nz)11 .創(chuàng)建一個3x3的單位矩陣(得(提示:np.eye)Z=np.eye(3)print(Z)12 .創(chuàng)建一個3x3x3的隨機(jī)數(shù)組(旬(提示:np.random.random)Z
4、=np.random.random(3,3,3)print(Z)13 .創(chuàng)建一個10x10的隨機(jī)數(shù)組并找到它的最大值和最小值(得(提示:min,max)Z=np.random.random(10,10)Zmin,Zmax=乙min(),Z.max()print(Zmin,Zmax)14 .創(chuàng)建一個長度為30的隨機(jī)向量并找到它的平均值(冏(提示:mean)Z=np.random.random(30)m=Z.mean()print(m)15 .創(chuàng)建一個二維數(shù)組,其中邊界值為1,其余值為0(向(提示:array1:-1,1:-1)Z=np.ones(10,10)Z1:-1,1:-1=0print(Z
5、)16 .對于一個存在在數(shù)組,如何添加一個用0填充的邊界?(向(提示:np.pad)Z=np.ones(5,5)Z=np.pad(Z,pad_width=1,mode='constant',constant_values=0)print(Z)17 .以下表達(dá)式運(yùn)行的結(jié)果分別是什么?(句(提示:NaN=notanumber,inf=infinity)0*np.nannp.nan=np.nannp.inf>np.nannp.nan-np.nan0.3=3*0.1print(0*np.nan)print(np.nan=np.nan)print(np.inf>np.nan)
6、print(np.nan-np.nan)print(0.3=3*0.1)18 .創(chuàng)建一個5x5的矩陣,并設(shè)置值1,2,3,4落在其對角線下方位置(冏(提示:np.diag)Z=np.diag(1+np.arange(4),k=-1)print(Z)19 .創(chuàng)建一個8x8的矩陣,并且設(shè)置成棋盤樣式(向(提示:array:2)Z=np.zeros(8,8),dtype=int)Z1:2,:2=1Z:2,1:2=1print(Z)20 .考慮一個(6,7,8)形狀的數(shù)組,其第100個元素的索引(x,y,z)是什么?(提示:np.unravel_index)print(np.unravel_index
7、(100,(6,7,8)21 .用tile函數(shù)去創(chuàng)建一個8x8的棋盤樣式矩陣(句(提示:np.tile)Z=np.tile(np.array(0,1,1,0),(4,4)print(Z)22 .對一個5x5的隨機(jī)矩陣做歸一化(向(提示:(x-min)/(max-min)Z=np.random.random(5,5)Zmax,Zmin=乙max(),乙min()Z=(Z-Zmin)/(Zmax-Zmin)print(Z)23 .創(chuàng)建一個將顏色描述為(RGBA)四個無符號字節(jié)的自定義dtype?(冏(提示:np.dtype)color=np.dtype("r”,np.ubyte,1),(
8、"g",np.ubyte,1),("b",np.ubyte,1),("a",np.ubyte,1)color24 .一個5x3的矩陣與一個3x2的矩陣相乘,實(shí)矩陣乘積是什么?(句(提示:np.dot|)Z=np.dot(np.ones(5,3),np.ones(3,2)print(Z)25 .給定一個一維數(shù)組,對其在3到8之間的所有元素取反(冏(提示:>,<=)Z=np.arange(11)Z(3<Z)&(Z<=8)*=-1print(Z)26 .下面腳本運(yùn)行后的結(jié)果是什么?(句(提示:np.sum)p
9、rint(sum(range(5),-1)fromnumpyimport*print(sum(range(5),-1)print(sum(range(5),-1)fromnumpyimport*print(sum(range(5),-1)27.考慮一個整數(shù)向量Z,下列表達(dá)合法的是哪個(得Z*Z27 <<Z>>2Z<-Z1j*ZZ/1/1ZZZ=np.arange(5)Z*Z#legalarray(1,1,4,27,256)Z=np.arange(5)2<<Z>>2#falsearray(0,1,2,4,8)Z=np.arange(5)Z&l
10、t;-Z#legalarray(False,False,False,False,False)Z=np.arange(5)1j*Z#legalarray(0.+0.j,0.+1.j,0.+2.j,0.+3.j,0.+4.j)Z=np.arange(5)Z/1/1#legalarray(0.,1.,2.,3.,4.)Z=np.arange(5)Z<Z>Z#falseValueError:Thetruthvalueofanarraywithmorethanoneelementisambiguous.Usea.any()ora.all()28 .下列表達(dá)式的結(jié)果分別是什么?(祗)np.ar
11、ray(0)/np.array(0)np.array(0)/np.array(0)np.array(np.nan).astype(int).astype(float)print(np.array(0)/np.array(0)print(np.array(0)/np.array(0)print(np.array(np.nan).astype(int).astype(float)29 .如何從零位對浮點(diǎn)數(shù)組做舍入?(旬(提示:np.uniform,np.copysign,np.ceil,np.abs)Z=np.random.uniform(-10,+10,10)print(np.copysign(
12、np.ceil(np.abs(Z),Z)30 .如何找到兩個數(shù)組中的共同元素?(冏(提示:ersect1d)Z1=np.random.randint(0,10,10)Z2=np.random.randint(0,10,10)print(ersect1d(Z1,Z2)31 .如何忽略所有的numpy警告(盡管不建議這么做)?(冏(提示:np.seterr,np.errstate)# Suicidemodeondefaults=np.seterr(all="ignore")Z=np.ones(1)/0# Backtosanity_=np.seterr(*
13、defaults)Anequivalentway,withacontextmanager:withnp.errstate(divide='ignore'):Z=np.ones(1)/032 .下面的表達(dá)式是正確的嗎?(冏(提示:imaginarynumber)np.sqrt(-1)=np.emath.sqrt(-1)np.sqrt(-1)=np.emath.sqrt(-1)False33 .如何得到昨大,今天,明天的日期?(旬(提示:np.datetime64,np.timedelta64)yesterday=np.datetime64('today','
14、;D')-np.timedelta64(1,'D')today=np.datetime64('today','D')tomorrow=np.datetime64('today','D')+np.timedelta64(1,'D')print("Yesterdayis"+str(yesterday)print("Todayis"+str(today)print("Tomorrowis"+str(tomorrow)34 .如何得到所有與
15、2016年7月對應(yīng)的日期?(崗(提示:np.arange(dtype=datetime64D')Z=np.arange('2016-07','2016-08',dtype='datetime64D')print(Z)35 .如何直接在位計(jì)算(A+B)*(-A/2)(不建立副本)?(旬(提示:np.add(out=),np.negative(out=),np.multiply(out=),np.divide(out二)A=np.ones(3)*1B=np.ones(3)*2C=np.ones(3)*3np.add(A,B,out=B)np.
16、divide(A,2,out=A)np.negative(A,out=A)np.multiply(A,B,out=A)(為36 .用五種不同的方法去提取一個隨機(jī)數(shù)組的整數(shù)部分(提示:%,np.floor,np.ceil,astype,np.trunc)Z=np.random.uniform(0,10,10)print(Z-Z%1)print(np.floor(Z)print(np.ceil(Z)-l)print(Z.astype(int)print(np.trunc(Z)37 .創(chuàng)建一個5x5的矩陣,其中每行的數(shù)值范圍從0到4(冏(提示:np.arange)Z=np.zeros(5,5)Z+=
17、np.arange(5)print(Z)38 .通過考慮一個可生成10個整數(shù)的函數(shù),來構(gòu)建一個數(shù)組(冏(提示:np.fromiter)defgenerate。:forxinrange(10):yieldxZ=np.fromiter(generate(),dtype=float,count=-1)print(Z)..8.9.39 .創(chuàng)建一個長度為10的隨機(jī)向量,其值域范圍從0到1,但是不包括0和1(冏(提示:np.linspace)Z=np.linspace(0,1,11,endpoint=False)1:print(Z)40 .創(chuàng)建一個長度為10的隨機(jī)向量,并將其排
18、序(向(提示:sort)Z=np.random.random(10)Z.sort()print(Z)41 .對于一個小數(shù)組,如何用比np.sum更快的方式對其求和?(冏(提示:np.add.reduce)Z=np.arange(10)np.add.reduce(Z)42 .對于兩個隨機(jī)數(shù)組A和B,檢查它們是否相等(旬(提示:np.allclose,np.array_equal)A=np.random.randint(0,2,5)B=np.random.randint(0,2,5)# Assumingidenticalshapeofthearraysandatoleranceforthecomp
19、arisonofvaluesequal=np.allclose(A,B)print(equal)False# 方法2# Checkingboththeshapeandtheelementvalues,notolerance(valueshavetobeexactlyequal)equal=np.array_equal(A,B)print(equal)False43.創(chuàng)建一個只讀數(shù)組(read-only)()(提示:flags.writeable)#使用如下過程實(shí)現(xiàn)Z=np.zeros(10)Z.flags.writeable=FalseZ0=144 .將笛卡爾坐標(biāo)下的一個10x2的矩陣轉(zhuǎn)換為極
20、坐標(biāo)形式(向(hint:np.sqrt,np.arctan2)Z=np.random.random(10,2)X,Y=Z:,0,Z:,1R=np.sqrt(X*2+Y*2)T=np.arctan2(Y,X)print(R)print(T)45 .創(chuàng)建一個長度為10的向量,并將向量中最大值替換為1(冏(提示:argmax)Z=np.random.random(10)ZZ.argmax()=0print(Z)46 .創(chuàng)建一個結(jié)構(gòu)化數(shù)組,并實(shí)現(xiàn)x和y坐標(biāo)覆蓋0,1x0,1區(qū)域(冏(提示:np.meshgrid)Z=np.zeros(5,5),('x',float),('y
21、39;,float)Z'x',Z'y'=np.meshgrid(np.linspace(0,1,5),np.linspace(0,1,5)print(Z)47 .給定兩個數(shù)組X和Y,構(gòu)造Cauchy矩陣C(Cij=1/(xi-yj)(提示:np.subtract.outer)X=np.arange(8)Y=X+0.5C=1.0/np.subtract.outer(X,Y)print(np.linalg.det(C)48 .打印每個numpy標(biāo)量類型的最小值和最大值?(冏(提示:np.iinfo,np.finfo,eps)8,np.
22、int32,64:print(np.iinfo(dtype).min)print(np.iinfo(dtype).max)fordtypeinnp.float32,np.float64:print(np.finfo(dtype).min)print(np.finfo(dtype).max)print(np.finfo(dtype).eps)49 .如何打印一個數(shù)組中的所有數(shù)值?(冏(提示:np.set_printoptions)np.set_printoptions(threshold=np.nan)Z=np.zeros(16,16)print(Z)50 .給定標(biāo)量時,如何找到數(shù)組
23、中最接近標(biāo)量的值?(冏(提示:argmin)Z=np.arange(100)v=np.random.uniform(0,100)index=(np.abs(Z-v).argmin()print(Zindex)51 .創(chuàng)建一個表示位置(x,y)和顏色(r,g,b)的結(jié)構(gòu)化數(shù)組(冏(提示:dtype)Z=np.zeros(10,('position',('x',float,1),('y',float,1),('color',('r',float,1),('g',float,1),('b'
24、,float,1)print(Z)52 .對一個表示坐標(biāo)形狀為(100,2)的隨機(jī)向量,找到點(diǎn)與點(diǎn)的距離(旬(提示:np.atleast_2d,T,np.sqrt)Z=np.random.random(10,2)X,Y=np.atleast_2d(Z:,0,Z:,1)D=np.sqrt(X-X.T)*2+(Y-Y.T)*2)print(D)# 方法2# Muchfasterwithscipyimportscipy# ThanksGavinHeverly-Coulson(#issue1)importscipy.spatialD=scipy.spatial.distance.cdist(Z,Z)p
25、rint(D)53 .如何將32位的浮點(diǎn)數(shù)(float)轉(zhuǎn)換為對應(yīng)的整數(shù)(integer)?(提示:astype(copy=False)Z=np.arange(10,dtype=32)Z=Z.astype(np.float32,copy=False)print(Z)54 .如何讀取以下文件?(向(提示:np.genfromtxt)1,2,3,4,56,7,8,9,10,11參考鏈接:/doc/numpy-1.13.0/reference/generated/numpy.genfromtxt.html55 .對于numpy數(shù)組,enumera
26、te的等價操作是什么?(崗(提示:np.ndenumerate,np.ndindex)Z=np.arange(9).reshape(3,3)forindex,valueinnp.ndenumerate(Z):print(index,value)forindexinnp.ndindex(Z.shape):print(index,Zindex)56 .生成一個通用的二維Gaussian-like數(shù)組(田(提示:np.meshgrid,np.exp)X,Y=np.meshgrid(np.linspace(-1,1,10),np.linspace(-1,1,10)D=np.sqrt(X*X+Y*Y)s
27、igma,mu=1.0,0.0G=np.exp(-(D-mu)*2/(2.0*sigma*2)print(G)57 .對一個二維數(shù)組,如何在其內(nèi)部隨機(jī)放置p個元素?(崗(提示:np.put,np.random.choice)n=10p=3Z=np.zeros(n,n)np.put(Z,np.random.choice(range(n*n),p,replace=False),1)print(Z)58 .減去一個矩陣中的每一行的平均值(得(提示:mean(axis=,keepdims=)X=np.random.rand(5,10)# Recentversionsofnumpy# =X-X.mean
28、(axis=1,keepdims=True)print(Y)# 方法2# OlderversionsofnumpyY=X-X.mean(axis=1).reshape(-1,1)print(Y)59 .如何通過第n列對一個數(shù)組進(jìn)行排序?()(提示:argsort)Z=np.random.randint(0,10,(3,3)print(Z)print(ZZ:,1.argsort()60 .如何檢查一個二維數(shù)組是否有空列?(向(提示:any,)Z=np.random.randint(0,3,(3,10)print(Z.any(axis=0).any()True61 .從數(shù)組中的給定值中找出最近的值
29、(向Z=np.random.uniform(0,1,10)z=0.5m=Z.flatnp.abs(Z-z).argmin()print(m)0.553124919689175962 .如何用迭代器(iterator)計(jì)算兩個分別具有形狀(1,3)和(3,1)的數(shù)組?(冏(提示:np.nditer)A=np.arange(3).reshape(3,1)B=np.arange(3).reshape(1,3)it=np.nditer(A,B,None)forx,y,zinit:z=x+yprint(it.operands2)63 .創(chuàng)建一個具有name屬性的數(shù)組類(向(提示:class方法)clas
30、sNamedArray(np.ndarray):def_new_(cls,array,name="noname"):obj=np.asarray(array).view(cls)=namereturnobjdef_array_finalize_(self,obj):ifobjisNone:=getattr(obj,'name',"noname")Z=NamedArray(np.arange(10),"range_10")print(Z.name)range_1064 .萬慮
31、一個給定的向量,如何對由第二個向量索引的每個元素加1(小心重復(fù)的索引)?()(提示:np.bincount|np.add.at)Z=np.ones(10)I=np.random.randint(0,len(Z),20)Z+=np.bincount。,minlength=len(Z)print(Z)..4.3.#方法2np.add.at(Z,I,1)print(Z)..7.5.65 .根據(jù)索引列表(I),如何將向量(X)的元素累加到數(shù)組(F)?()(提示:np.bincount)X=1,2,3,4,5,6I=1,3,9,3,4,1F=np.
32、bincount(I,X)print(F)..0.3.66 .考慮一個(dtype=ubyte)的(w,h,3)圖像,計(jì)算其唯一顏色的數(shù)量()(提示:np.unique)w,h=16,16I=np.random.randint(0,2,(h,w,3).astype(np.ubyte)#Notethatweshouldcompute256*256first.#OtherwisenumpywillonlypromoteF.dtypeto'uint16'andoverfolwwilloccurF=I.,0*(256*256)+I.,1*256+I.,2n=
33、len(np.unique(F)print(n)867 .考慮一個四維數(shù)組,如何一次性計(jì)算出最后兩個軸(axis)的和?()(提示:sum(axis=(-2,-1)A=np.random.randint(0,10,(3,4,3,4)#solutionbypassingatupleofaxes(introducedinnumpy1.7.0)sum=A.sum(axis=(-2,-1)print(sum)#方法2sum=A.reshape(A.shape:-2+(-1,).sum(axis=-1)print(sum)68.考慮一個一維向量D,如何使用相同大小的向量S來計(jì)算D子集的均值?()(提示:
34、np.bincount)D=np.random.uniform(0,1,100)S=np.random.randint(0,10,100)D_sums=np.bincount(S,weights=D)D_counts=np.bincount(S)D_means=D_sums/D_countsprint(D_means)#方法2importpandasaspdprint(pd.Series(D).groupby(S).mean()69.如何獲得點(diǎn)積dotprodcut的對角線?()(提示:np.diag)A=np.random.uniform(0,1,(5,5)B=np.random.unifo
35、rm(0,1,(5,5)# slowversionnp.diag(np.dot(A,B)# 方法2# Fastversionnp.sum(A*B.T,axis=1)# 方法3# Fasterversionnp.einsum("ij,ji->i",A,B)70 .考慮一個向量1,2,3,4,5,如何建立一個新的向量,在這個新向量中每個值之間有3個連續(xù)的零?()(提示:array:4)Z=np.array(1,2,3,4,5)nz=3Z0=np.zeros(len(Z)+(len(Z)-1)*(nz)Z0仁nz+1=Zprint(Z0)..3.
36、..71 .考慮一個維度(5,5,3)的數(shù)組,如何將其與一個(5,5)的數(shù)組相乘?()(提示:array:,:,None)A=np.ones(5,5,3)B=2*np.ones(5,5)print(A*B:,:,None)72 .如何對一個數(shù)組中任意兩行做交換?()(提示:array=array)A=np.arange(25).reshape(5,5)A0,1=A1,0print(A)73 .考慮一個可以描述10個三角形的triplets,找到可以分割全部三角形的linesegmentConsiderasetof10tripletsdescribing10trian
37、gles(withsharedvertices),findthesetofuniquelinesegmentscomposingallthetriangles()(提示:repeat,np.roll,np.sort,view,np.unique)faces=np.random.randint(0,100,(10,3)F=np.roll(faces.repeat(2,axis=1),-1,axis=1)F=F.reshape(len(F)*3,2)F=np.sort(F,axis=1)G=F.view(dtype=K'p0',F.dtype),('p1',F.dt
38、ype)G=np.unique(G)print(G)74 .給定一個二進(jìn)制的數(shù)組C,如何產(chǎn)生一個數(shù)組A滿足np.bincount(A)=C(見(提示:np.repeat)C=np.bincount(1,1,2,3,4,4,6)A=np.repeat(np.arange(len(C),C)print(A)112344675 .如何通過滑動窗口計(jì)算一個數(shù)組的平均數(shù)?(內(nèi)(提示:np.cumsum)defmoving_average(a,n=3):ret=np.cumsum(a,dtype=float)retn:=retn:-ret:-nreturnretn-1:/nZ=np.arange(20)p
39、rint(moving_average(Z,n=3)..8.76 .Consideraone-dimensionalarrayZ,buildatwo-dimensionalarraywhosefirstrowis(Z0,Z1,Z2)andeachsubsequentrowisshiftedby1(lastrowshouldbe(Z-3,Z-2,Z-1)()(提示:fromnumpy.libimportstride_tricks)fromnumpy.libimportstride_tricksdefrolling(
40、a,window):shape=(a.size-window+1,window)strides=(a.itemsize,a.itemsize)returnstride_tricks.as_strided(a,shape=shape,strides=strides)Z=rolling(np.arange(10),3)print(Z)77 .如何對布爾值取反,或者原位(in-place)改變浮點(diǎn)數(shù)的符號(sign)?(內(nèi)(提示:np.logical_not,np.negative)Z=np.random.randint(0,2,100)np.logical_not(Z,out=Z)Z=np.ran
41、dom.uniform(-1.0,1.0,100)np.negative(Z,out=Z)78 .考慮兩組點(diǎn)集P0和P1去描述一組線(二維)和一個點(diǎn)p,如何計(jì)算點(diǎn)p到每一條線i(P0i,P1i)的距離?()defdistance(P0,P1,p):T=P1-P0L=(T*2).sum(axis=1)U=-(P0:,0-p.,0)*T:,0+(P0:,1-p.,1)*T:,1)/LU=U.reshape(len(U),1)D=P0+U*T-preturnnp.sqrt(D*2).sum(axis=1)P0=np.random.uniform(-10,10,(10,2)P1=np.random.u
42、niform(-10,10,(10,2)p=np.random.uniform(-10,10,(1,2)print(distance(P0,P1,p)79 .考慮兩組點(diǎn)集P0和P1去描述一組線(二維)和一組點(diǎn)集P,如何計(jì)算每一個點(diǎn)j(Pj)到每一條線i(P0i,P1i)的距離?()#basedondistancefunctionfrompreviousquestionP0=np.random.uniform(-10,10,(10,2)P1=np.random.uniform(-10,10,(10,2)p=np.random.uniform(-10,10,(10,2)print(np.array
43、(distance(P0,P1,p_i)forp_iinp)80.Consideranarbitraryarray,writeafunctionthatextractasubpartwithafixedshapeandcenteredonagivenelement(padwithafillvaluewhennecessary)(為(hint:minimum,maximum)Z=np.random.randint(0,10,(10,10)shape=(5,5)fill=0position=(1,1)R=np.ones(shape,dtype=Z.dtype)*fillP=np.array(lis
44、t(position).astype(int)Rs=np.array(list(R.shape).astype(int)Zs=np.array(list(Z.shape).astype(int)R_start=np.zeros(len(shape),).astype(int)R_stop=np.array(list(shape).astype(int)Z_start=(P-Rs2)Z_stop=(P+Rs2)+Rs%2R_start=(R_start-np.minimum(Z_start,0).tolist()Z_start=(np.maximum(Z_start,0).tolist()R_s
45、top=np.maximum(R_start,(R_stop-np.maximum(Z_stop-Zs,0).tolist()Z_stop=(np.minimum(Z_stop,Zs).tolist()r=slice(start,stop)forstart,stopinzip(R_start,R_stop)z=slice(start,stop)forstart,stopinzip(Z_start,Z_stop)Rr=Zz一一print(Z)print(R)81 .考慮一個數(shù)組Z=1,2,3,4,5,6,7,8,9,10,11,12,13,14,如何生成一個數(shù)組R=1,2,3,4,2,3,4,5
46、,3,4,5,6,11,12*3,14)?(提示:stride_tricks.as_strided)Z=np.arange(1,15,dtype=np.uint32)R=stride_tricks.as_strided(Z,(11,4),(4,4)print(R)82 .計(jì)算一個矩陣的秩()(提示:np.linalg.svd)Z=np.random.uniform(0,1,(10,10)U,S,V=np.linalg.svd(Z)#SingularValueDecompositionrank=np.sum(S>1e-10)print(rank)83 .如何也到一個數(shù)組中出現(xiàn)頻率最高的值?
47、(提示:np.bincount,argmax)Z=np.random.randint(0,10,50)print(np.bincount(Z).argmax()184 .從一個10x10的矩陣中提取出連續(xù)的3x3區(qū)塊()(提示:stride_tricks.as_strided)Z=np.random.randint(0,5,(10,10)n=3i=1+(Z.shape0-3)j=1+(Z.shape1-3)C=stride_tricks.as_strided(Z,shape=(i,j,n,n),strides=Z.strides+Z.strides)print(C)85 .創(chuàng)建一個滿足Zi,j
48、=Zj,i的子類()(提示:class方法)classSymetric(np.ndarray):def_setitem_(self,index,value):i,j=indexsuper(Symetric,self).setitem_(i,j),value)super(Symetric,self).setitem_(j,i),value)defsymetric(Z):returnnp.asarray(Z+Z.T-np.diag(Z.diagonal().view(Symetric)S=symetric(np.random.randint(0,10,(5,5)S2,3=42print(S)86
49、.考慮p個nxn矩陣和一組形狀為(n,1)的向量,如何直接計(jì)算p個矩陣的乘積(n,1)?()(提示:np.tensordot)p,n=10,20M=np.ones(p,n,n)V=np.ones(p,n,1)S=np.tensordot(M,V,axes=0,2,0,1)print(S)87 .對于一個16x16的數(shù)組,如何得到一個區(qū)域(block-sum)的和(區(qū)域大小為4x4)?(用(提示:np.add.reduceat)Z=np.ones(16,16)k=4S=np.add.reduceat(np.add.reduceat(Z,np.arange(0,Z.shape0,k),axis=0
50、),np.arange(0,Z.shape1,k),axis=1)print(S)88 .如何利用numpy數(shù)組實(shí)現(xiàn)GameofLife?()(提示:GameofLife)defiterate(Z):# CountneighboursN=(Z0:-2,0:-2+Z0:-2,1:-1+Z0:-2,2:+Z1:-1,0:-2+Z1:-1,2:+Z2:,0:-2+Z2:,1:-1+Z2:,2:)# Applyrulesbirth=(N=3)&(Z1:-1,1:-1=0)survive=(N=2)|(N=3)&(Z1:-1,1:-1=1)Z=0Z1:-1,1:-1birth|survi
51、ve=1returnZZ=np.random.randint(0,2,(50,50)foriinrange(100):Z=iterate(Z)print(Z)89.如何找到一個數(shù)組的第n個最大值?()(提示:np.argsort|np.argpartition)Z=np.arange(10000)np.random.shuffle(Z)n=5# Slowprint(Znp.argsort(Z)-n:)99959996999799989999# 方法2# Fastprint(Znp.argpartition(-Z,n):n)9999999799989996999590 .給定任意個數(shù)向量,創(chuàng)建笛
52、卡爾積(每一個元素的每一種組合)()(提示:np.indices)defcartesian(arrays):arrays=np.asarray(a)forainarraysshape=(len(x)forxinarrays)ix=np.indices(shape,dtype=int)ix=ix.reshape(len(arrays),-1).Tforn,arrinenumerate(arrays):ix:,n=arraysnix:,nreturnixprint(cartesian(1,2,3,4,5,6,7)91 .如何從一個正常數(shù)組創(chuàng)建記錄數(shù)組(recordarray)?()(提示:np.c
53、ore.records.fromarrays)Z=np.array("Hello”,2.5,3),("World",3.6,2)R=np.core.records.fromarrays(Z.T,names='col1,col2,col3',formats='S8,f8,i8')print(R)(為(b'Hello',2.5,3)(b'World',3.6,2)92 .考慮一個大向量Z,用三種不同的方法計(jì)算它的立方(提示:np.power,*,np.einsum)x=np.random.rand()np
54、.power(x,3)#方法2x*x*x#方法3np.einsum('i,i,i->i',x,x,x)93 .考慮兩個形狀分別為(8,3)和(2,2)的數(shù)組A和B.如何在數(shù)組A中找到滿足包含B中元素的行?(不考慮B中每行元素順序)?()(提示:np.where)A=np.random.randint(0,5,(8,3)B=np.random.randint(0,5,(2,2)C=(A,np.newaxis,np.newaxis=B)rows=np.where(C.any(3,1).all(1)0print(rows)(如2,2,3) ( )01456794 .考慮一個10
55、x3的矩陣,分解出有不全相同值的行Z=np.random.randint(0,5,(10,3)print(Z)# solutionforarraysofalldtypes(includingstringarraysandrecordarrays)E=np.all(Z:,1:=Z:,:-1,axis=1)U=ZEprint(U)# 方法2# soluitonfornumericalarraysonly,willworkforanynumberofcolumnsinZU=ZZ.max(axis=1)!=乙min(axis=1),:print(U)95.將一個整數(shù)向量轉(zhuǎn)換為matrixbinary的表現(xiàn)形式()(提示:np.unpackbits)I=np.array(0,1,2,3,15,16,32,64,128)B=(I.reshape(-1,1)&(2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 28 有的人-紀(jì)念魯迅先生有感 教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版語文六年級上冊
- 2024-2025學(xué)年高中歷史 6.3 中國地質(zhì)力學(xué)的奠基人李四光教學(xué)實(shí)錄 新人教版選修4
- 5《綠水青山歡笑多》教學(xué)設(shè)計(jì)-2023-2024學(xué)年泰山版小學(xué)信息技術(shù)五年級下冊
- 2024年六年級道德與法治下冊 第四單元 讓世界更美好 9 日益重要的國際組織教學(xué)實(shí)錄 新人教版
- 2《學(xué)會溝通交流-正確對待不同看法》(教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版道德與法治五年級上冊
- 1《我們愛整潔》教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治一年級下冊統(tǒng)編版
- 3《公民意味著什么》第二課時 認(rèn)識居民身份證 教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治六年級上冊統(tǒng)編版
- 2024-2025學(xué)年高中地理下學(xué)期 4.2 工業(yè)地域的形成教學(xué)實(shí)錄
- 6我們神圣的國土 第一課時 教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級道德與法治上冊統(tǒng)編版
- 源遠(yuǎn)流長的中華文化教學(xué)設(shè)計(jì)高中政治人教版必修三
- 2020-2021年度廣東省職業(yè)院校學(xué)生專業(yè)技能大賽(高職組)CAD機(jī)械設(shè)計(jì)賽項(xiàng)競賽規(guī)程
- DB-T 29-22-2024 天津市住宅設(shè)計(jì)標(biāo)準(zhǔn)
- 2024年贛州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- DL∕T 5209-2020 高清版 混凝土壩安全監(jiān)測資料整編規(guī)程
- 孫子生日宴會爺爺致辭范文
- 2024年湖南新課標(biāo)卷高考生物真題試卷(無答案)
- 【正版授權(quán)】 IEC 60072-3:1994 EN-FR Dimensions and output series for rotating electrical machines - Part 3: Small built-in motors - Flange numbers BF10 to BF50
- 養(yǎng)老院老人走失免責(zé)協(xié)議書
- 加固工程施工技術(shù)交底內(nèi)容
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 醫(yī)療器械質(zhì)量安全風(fēng)險會商管理制度
評論
0/150
提交評論