日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

numpy练习100道题

發布時間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy练习100道题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- """ Created on Fri Nov 8 10:17:18 2019@author: lenovo """import numpy as np import pandas as pdprint(np.__version__)##打印輸出numpy的版本和配置信息 np.show_config() Z=np.zeros(10)##創建長度為10的零向量 print(Z)Z=np.zeros((10,10)) print(Z.size * Z.itemsize)##獲取數組所占內存大小 np.info(np.add)##用命令行獲取numpy add函數的文檔說明Z=np.zeros(10) Z[4]=1 print(Z)##創建一個長度為10的零向量,并把第五個值賦值為1 Z=np.arange(10,50) print(Z)##獲得一個值域為1049的向量 Z=np.arange(50) Z=Z[::-1] print(Z)##講一個向量進行翻轉 Z=np.arange(9).reshape(3,3) print(Z)##創建一個3*3的矩陣,值域為08 nz=np.nonzero([1,2,0,0,4.0]) print(nz)##找出非零位置的索引 z=np.eye(3) print(z)##創建一個3*3的單位矩陣 z=np.random.random((3,3,3)) print(z)##創建一個3*3*3的隨機矩陣 z=np.random.random((10,10)) zmax,zmin=z.max(),z.min() print(z.max,z.min)##創建一個10*10的隨機數組,并找出數組中最大值與最小值 z=np.random.random(30) mean=z.mean() print(mean)##創建一個長度為30的隨機數組,并求出平均值 z=np.ones((10,10)) z[1:-1,1:-1]=0 print(z)##創建一個二維數組,邊界值為1,內部值為0 z=np.ones((10,10)) z=np.pad(z,pad_width=1,mode='constant',constant_values=0) print(z)##用0來填充一個數組的邊界 z=np.diag([1,2,3,4],k=-1)#k=-1保證了偏移量 print(z)##創建一個5*5的矩陣,設置1,23,4在其對角線下面一行 z=np.zeros((8,8),dtype=int) z[1::2,::2]=1 z[::2,1::2]=1 print(z)##創建一個8*8的國際象棋矩陣黑塊為0,白塊為1 print(np.unravel_index(100,(6,7,8)))##形狀為(67,8)數組的形狀,第100個元素的索引 z=np.tile(np.array([[1,0],[0,1]]),(4,4)) print(z)##創建一個8*8的棋盤矩陣 z=np.random.random((5,5)) zmax,zmin=z.max(),z.min() z=(z-zmin)/(zmax-zmin) print(z)##對5*5的矩陣歸一化 color=np.dtype([("r",np.ubyte,1),("g",np.ubyte,1),("b",np.ubyte,1),("a",np.ubyte,1)]) c=np.array((255,255,255,1),dtype=color) print(c)##創建一個dtype來表示顏色(RGBA) z=np.dot(np.zeros((5,3)),np.zeros((3,2))) print(z)##一個5*3矩陣和一個3*2矩陣相乘 z=np.arange(11) z[(3<=z)&(z<8)]*=-1 print(z)##給定一個一維數組把它從38的元素求相反數 print(sum(range(5),-1))##結果為9 z=np.random.uniform(-10,+10,10) print(np.copysign(np.ceil(np.abs(z)),z))##從零位開始舍入浮點數組 z1=np.random.randint(0,10,10) z2=np.random.randint(0,10,10) print(np.intersect1d(z1,z2))##兩個數組公共的元素 A=np.ones(3)*1 B=np.ones(3)*1 C=np.ones(3)*1 np.add(A,B,out=B) np.divide(A,2,out=A) np.negative(A,out=A) np.multiply(A,B,out=A)##計算((A+B)*(-A/2))##用五種方法提取隨機數組中的整數部分 z=np.random.uniform(0,10,10) print(z-z%1) print(np.floor(z)) print(np.cell(z)-1) print(z.astype(int)) print(np.trunc(z))##創建一個5*5的矩陣且每一行的值范圍為0~4 z=np.zeros((5,5)) z+=np.arange(5) print(z)##用一個生成10個整數的函數來構建數組 def generate():for x in range(10):yield x z=np.fromiter(generate(),dtype=flaot,count=-1) print(z) ##創建一個大小為10的向量,值域為01,不包括01 z=np.linspace(0,1,12,endpoint=True)[1:-1] print(z)#創建一個大小為10的隨機向量,并把它排序 z=np.random.random(10) z.sort() print(z) ##對一個小數組求和 z=np.arange(10) np.add.reduce(z)##np.add.reduce 是numpy.add模塊中的一個ufunc(universal function)函數,c語言實現##如何判斷兩隨機數組相等 A=np.random.randint(0,2,5) B=np.random.randint(0,2,5) equal=np.allclose(A,B) print(equal) equal=np.array_equal(A,B) print(equal)##把數組變為只讀 z=np.zeros(5) z.flags.writeable=False z[0]=1##將一個10*2的笛卡爾坐標矩陣轉換為極坐標 z=np.random.random((10,2)) x,y=z[:,2],z[:,1] r=np.sqrt(x**2+y**2) t=np.arctan2(y,x) print(r) print(t)##創建一個大小為10的隨機向量并且將該向量中最大的值替換為0 z=np.random.random(10) z[z.argmax()]=0 print(z)##創建一個結構化數組,其中x和y坐標覆蓋[0,1]*[1,0]區域 z=np.zeros((5,5),[('x',float),('y').float]) z['x'],z['y']=np.meshgrid(np.linspace(0,1,5),np.linspace(0,1,5)) print(z)##給定兩個數組x和y,構造柯西矩陣 x=np.arange(8) y=x+0.5 c=1.0/np.subtract.outer(x,y) print(c) print(np.linalg.det(c))##計算行列式##打印每個numpy類型的最大和最小可表示值 for dtype in [np.int8,np.int32,np.int64]:print(np.iinfo(dtype).min)print(np.iinfo(dtype).max) for dtype in [np.float32,np.float64]:print(np.finfo(dtype).min)print(np.finfo(dtype).max)print(np.finfo(dtype).eps)##打印數組中的所有的值 np.set_printoptions(threshold=np.nan) z=np.zeros((16,16)) print(z)##如何在數組中找到與給定標量接近的值 z=np.arange(100) v=np.random.uniform(0,100) index=(np.abs(z-v)).argmin() print(z[index])##創建表示位置(x,y)和顏色(r,g,b,a)的結構化數組 z=np.zeros(10,[('position',[('x',float,1),('y',float,1)]),('color',[('r',float,1),('g',float,1),('b',float,1)])]) print(z)##思考形狀為(100,2)的隨機向量,求出點和點之間的距離 z=np.random.random((100,2)) x,y=np.atleast_2d(z[:0],z[:,1]) d=np.sqrt((x-x.T)**2+(y-y.T)**2) print(d)##將float32)轉換成integer(32)位 z=np.arange(10,dtype=np.int32) z=z.astype(np.float32,copy=False) print(z)##讀取TXT文件 z=np.genfromtxt("example.txt",delimiter=",") print(z)##枚舉的等價操作 z=np.arange(9).reshape(3,3) for index,value in np.ndenumerate(z):print(index,value) for index in np.ndindex(z.shape):print(index,z[index]) ##構造一個二維高斯矩陣 x,y=np.meshgrid(np.linspace(-1,1,10),np.linspace(-1,1,10)) d=sqrt(x**2+y**2) sigma,mu=1.0,0.0 g=np.exp(-((d-mu)**2/(2.0*sigma**2))) print(g)##在二位數組的隨機位置放置p個元素 n=10 p=3 z=np.zeros((n,n)) np.put(z,np.random.choice(range(n*n),p,replace=False),1) print(z) ##減去矩陣每一行的平均值 x=np.random.rand(5,10) y=x-x.mean(axis=1,keepdims=True) print(y)##對數組通過第n列進行排序 z=np.random.randint(0,10,(3,3)) print(z) print(z[z[:,1].argsort()])#判定一個給定的二維數組存在空列 z=np.random.nuiform(0,3,(3,10)) print((~z.any(axis=0)).any())##從數組中找出與給定值最接近的值 Z=np.random.uniform(0,1,10) z=0.5 m=z.flat[np.abs(Z-z).argmin()] print(m)##使用迭代器計算(1,3)和(3,1)的和 A=np.arange(3).reshape(3,1) B=np.arange(3).reshape(1,3) it=np.nditer([A,B,None]) for x,y,z in it:z[...]=x+y print(it.operands[2])##創建一個具有name屬性的數組類 class NameArray(np.ndarray):def __new__(cls,array,name="no name"):obj=np.asarray(array).view(cls)obj.name=namereturn objdef __array_finalize__(self,obj):if obj is None:return self.info=getattr(obj,'name',"no name") z=NamedArray(np.arange(10),"rang_10") print(z.name) ##給定一個向量,在第二個向量中每個元素加一 z=np.ones(10) i=np.random.randint(0,len(z),20) z+=np.bincount(i,minlength=len(z)) print(z) np.add.at(z,i,1) print(z) ##根據索引列表I將向量x的元素累加到數組F x=[1,2,3,4,5,6] i=[1,3,9,3,4,1] f=np.bincount(i,x) print(f) ##思考(dtype=ubyte)的(w,h,3)圖像,計算唯一顏色的值 w,h=16,16 i=np.random.randint(0,2,(h,w,3)).astype(np.ubyte) f=i[...,0]*256*256+i[...,1]*256+i[...,2] n=len(np.unique(f)) print(np.unique(i)) ##思考如何求一個四維數組最后兩個軸的數據和 a=np.random.randint(0,10,(3,4,3,4)) sum=a.sum(axis=(-2,-1)) print(sum) sum=a.reshape(a.shape[:-2]+(-1,)).sum(axis=-1) print(sum) ##一維向量D,使用相同大小的向量S來計算D的子集的均值,描述子集索引 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_counts print(d_means) print(pd.Series(d).groupby(s).mean()) ##獲得點積的對角線 a=np.random.uniform(0,1,(5,5)) b=np.random.uniform(0,1,(5,5)) np.diag(np.dot(a,b)) np.sum(a*b.T,axis=1) np.einsum("ij,ji->i",a,b) ##考慮向量[1,2,3,4,5],建立一個新的向量,在每個值之間交錯有3個連續的零 z=np.array([1,2,3,4,5]) nz=3 z0=np.zeros(len(z)+(len(z)-1)*(nz)) z0[::nz+1]=z print(z0) ##考慮一個維度(5,5,3)的數組,如何將其與一個(5,5)的數組相乘 a=np.ones((5,5,3)) b=2*np.ones((5,5)) print(a*b[:,:,None]) ##對一個數組中任意兩行做交換 a=np.arange(25).reshape(5,5) a[[0,1]]=a[[1,0]] print(a) ##給定一個二進制的數組c,如何生成一個數組A滿足np.bincount(A)==c c=np.buncount([1,1,2,3,4,4,6]) a=np.repeat(np.arange(len(c)),c) print(a) #通過滑動窗口計算一個數組的平均數 def moving_average(a,n=3):ret=np.cumsum(a,dtype=float)ret[n:]=ret[n:]-ret[:-n]return ret[n-1:]/n z=np.arange(20) print(moving_average(z,n=3)) ##對布爾值取反,改變浮點數的符號 z=np.random.randint(0,2,100) np.logical_not(z,out=z) z=np.random.uniform(-1.0,1.0,100) np.negative(z,out=z) ##思考兩組點集p0和p1去描述一組線和一個點p,如何計算點p到每一條線i的距離 def distance(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-preturn np.sqrt((d**2).sum(axis=1)) p0=np.random.uniform(-10,10,(10,2)) p1=np.random.uniform(-10,10,(10,2)) p=np.random.uniform(-10,10,(1,2)) print(distance(p0,p1,p)) ##考慮兩組點集p0和p1去描述一組線(二維)和一組點集p,如何計算每一個點j(p[j])到每一條線i的距離 p0=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([distance(p0,p1,p_i) for p_i in p])) ##z=[1,2,3,4,5,6,7,8,9,10,11,12,13,14],如何生成一個數組r=[[1,2,3,4],[2,3,4,5],[3,4,5,6]...[11,12,13,14]] z=np.arange(1,15,dtype=np.uint32) r=stride_tricks.as_strided(z,(11,4),(4,4)) print(r) #計算矩陣的秩 z=np.random.uniform(0,1,(10,10)) u,s,v=np.linalg.svd(z) rank=np.sum(s>1e-10) print(rank) ##找出數組中出現頻率最高的值 z=np.random.randint(0,10,50) print(np.bincount(z).argmax()) ##從一個10*10的矩陣中提取一個連續的3*3區塊 z=np.random.randint(0,5,(10,10)) n=3 i=1+(z.shape[0]-3) j=1+(z.shape[1]-3) c=stride_tricks.as_strided(z,shape=(i,j,n,n),strides=z.strides+z.strides) print(c) ##創建一個z[i,j]==z[j,i]的二維數組子類 class Symetric(np.ndarray):def __setitem__(self,index,value):i,j=indexsuper(Symetric,self).__setitem__((i,j),value)super(Symetric,self).__setitem__((j,i),value)def symetric(z):return np.asarray(z+z.T-np.diag(z.diagonal())).view(Symetric)s=symetric(np.random.randint(0,10,(5,5)))s[2,3]=42print(s) ##考慮p個n*n矩陣和一組形狀為(n,1)的向量,計算p個矩陣的乘(n,1) p,n=10,20 m=np.ones((p,n,n)) v=np.ones((p,n,1)) s=np.tensordot(m,v,axes=[[0,2],[0,1]]) print(s) ##對于一個16*16的數組,如何得到一個4*4區域的和 z=np.ones((16,16)) k=4 s=np.add.reduceat(np.add.reduceat(z,np.arange(0,z.shape[0],k),axis=0),np.arange(0,z.shape[1],k),axis=1) print(s) ##找到數組的第n大值 z=np.arange(10000) np.random.shuffle(z) n=5 print(z[np.argsort(z)[-n:]])##slow print(z[np.argpartition(-z,n)[:n]]) ##給定任意向量,創建笛卡爾積 def cartesian(arrays):arrays=[np.asarray(a) for a in arrays]shape=(len(x) for x in arrays)ix=np.indices(shape,dtype=int)ix=ix.reshape(len(arrays),-1).Tfor n,arr in enumerate(arrays):ix[:,n]=arrays[n][ix[:,n]]return ix print(cartesian(([1,2,3],[4,5],[6,7]))) ##從常規數組中創建記錄數組 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) ##思考一個大向量Z,用三種不同的方法計算它的立方 x=np.random.rand(5e7) %timeit np.power(x,3) %timeit x*x*x %timeit np.einsum('i,i,i->i',x,x,x) ##考慮兩個形狀分別為(8,3)和(2,2)的數組A和B,如何在數組A中找到滿足包含B中元素的行 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))[0] print(rows) ##思考一個10*3的矩陣,如何分解出有不全相同值的行 z=np.random.randint(0,5,(10,3)) print(z) e=np.all(z[:,1:]==z[:,:-1],axis=1) u=z[~e] print(u) u=z[z.max(axis=1)!=z.min(axis=1),:] print(u) ##講一個整數向量 轉換成二進制矩陣 i=np.array([0,1,2,3,15,16,32,64,128]) b=((i.reshape(-1,1)&(2**np.arange(8)))!=0).astype(int) print(b[:,::-1]) i=np.array([0,1,2,3,15,16,32,64,128],dtype=np.uint8) print(np.unpackbits(i[:,np.newaxis],axis=1)) ##給定一個二維數組,如何提出唯一的行 z=np.random.randint(0,2,(6,3)) t=np.ascontiguousarray(z).view(np.dtype((np.void,z.dtype.itemsize*z.shape[1]))) _,idx=np.unique(t,return_index=True) uz=z[idx] print(uz) ##考慮兩個向量A和B,寫出用einsum等式對應的inner,outer,sum,mul a=np.random.uniform(0,1,10) b=np.random.uniform(0,1,10) np.einsum('i->',a) np.einsum('i,i->i',a,b) np.einsum('i,i',a,b) np.einsum('i,j->ij',a,b) ##給定一個整數n和一個二維數組x,從x中選擇可以被解釋為從多n度的多項式分布式的行 x=np.asarray([[1.0,0.0,3.0,8.0],[2.0,0.0,1.0,1.0],[1.5,2.5,1.0.0.0]]) n=4 m=np.logical_and.reduce(np.mod(x,1)==0,axis=-1) m &= (x.sum(axis=-1)==n) print(x[m]) ##對于一個一維數組x,計算它boostrapped之后95%置信區間的平均值 x=np.random.randn(100) n=1000 idx=np.random.randint(0,x.size,(n,x.size)) means=x[idx].mean(axis=1) confint=np.percentile(means,[2.5,97.5]) print(confint)

努力加油a啊,(o)/~

總結

以上是生活随笔為你收集整理的numpy练习100道题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲免费在线 | 国产精品分类 | 国产精品白丝喷水在线观看 | 99久久久无码国产精品性波多 | 一级特黄aaa| 可以看的av网址 | 韩国av一区二区三区 | 亚洲av色香蕉一区二区三区 | 久久久精品麻豆 | 黄色a视频 | 黄片毛片视频 | av在线免费观看不卡 | www.555国产精品免费 | 亚洲AV成人无码一二三区在线 | 一区二区啪啪 | 少妇综合| 欧美日韩视频在线播放 | 美女狂揉羞羞的视频 | 在线观看免费的av | 一区二区三区在线看 | 成人激情小说网站 | 激情综合网五月 | 88av网站 | 亚洲久草 | 最新色站| 邻居交换做爰2 | 日韩黄色网 | 亚洲av无码一区二区二三区软件 | 久草久热 | 在线免费观看黄 | 永久中文字幕 | 一极毛片 | 久久久久久久久久综合 | 中文字幕淫 | 日日干夜夜干 | 久久激情小说 | 亚欧在线视频 | 欧美日韩在线视频免费观看 | 久久涩视频 | 在线天堂资源 | 欧美一级鲁丝片 | 亚洲免费小视频 | 日日夜夜伊人 | 久久精品欧美日韩 | 久久久永久久久人妻精品麻豆 | 精品日韩中文字幕 | 欧美高清一区二区 | 亚洲精品国产suv | 天天操操操| 国产在线第二页 | 9i精品福利一区二区三区 | 亚洲国产成人精品视频 | 日本人の夫妇交换 | 永久免费未满视频 | 天天草天天操 | 97在线观看视频免费 | 亚洲乱码av | 91一区在线观看 | 欧美视频网站 | 国产精品电影在线观看 | 久久影院午夜理论片无码 | 国产午夜免费福利 | 在线免费观看不卡av | 久久久久这里只有精品 | 黄色网络在线观看 | 亚洲av无码专区在线 | jizz成熟丰满日本少妇 | 欧美第五页 | 在线免费观看成人 | 三级做爰在线观看视频 | 女同hd系列中文字幕 | 美女网站一区 | 亚洲观看黄色网 | 色婷婷午夜| 国产黄在线观看 | 久久网国产| 日韩一区二区高清 | 国产馆在线观看 | 国产成人无码一区二区在线观看 | 美女被草出白浆 | 黄色欧美一级片 | 天天干天天操天天碰 | 毛片网站免费观看 | 被绑在床强摁做开腿呻吟 | 国内一级视频 | 2025国产精品视频 | 中文字幕永久在线观看 | 91国内精品久久久 | 污黄啪啪网| 日韩成人影视 | 黄色xxxx | 青娱网电信一区电信二区电信三区 | 日本欧美在线视频 | 福利电影在线播放 | 玖玖玖精品 | 亚洲综合婷婷 | av 一区二区三区 | 中文字幕一本 | 大黄毛片 |