Python之Numpy模塊100道測(cè)試題_第1頁
Python之Numpy模塊100道測(cè)試題_第2頁
Python之Numpy模塊100道測(cè)試題_第3頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1. 導(dǎo)入 numpy 庫并簡寫為 np ()(提示 : importas )import numpy as np2. 打印 numpy 的版本和配置說明()(提示 : np.version, np.show_config)print(np._version_)np.show_config()3. 創(chuàng)建一個(gè)長度為10 的空向量()(提示 : np.zeros)Z = np.zeros(10)print(Z)4. 如何找到任何一個(gè)數(shù)組的內(nèi)存大???()(提示 : size, itemsize)Z = np.zeros(10,10)print("%d bytes" % (Z.si

2、ze * Z.itemsize)5. 如何從命令行得到 numpy 中 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)建一個(gè)長度為10 并且除了第五個(gè)值為1 的空向量( )(提示 : array4)Z = np.zeros(10)Z4 = 1print(Z)7. 創(chuàng)建一個(gè)值域范圍從 10

3、到 49 的向量 ()(提示 : np.arange)Z = np.arange(10,50)print(Z)8. 反轉(zhuǎn)一個(gè)向量(第一個(gè)元素變?yōu)樽詈笠粋€(gè)) ( )(提示 : array:-1)Z = np.arange(50)Z = Z:-1print(Z)9. 創(chuàng)建一個(gè)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.

4、 創(chuàng)建一個(gè)3x3 的單位矩陣()(提示 : np.eye)Z = np.eye(3)print(Z)12. 創(chuàng)建一個(gè)3x3x3 的隨機(jī)數(shù)組()(提示 : np.random.random)Z = np.random.random(3,3,3)print(Z)13. 創(chuàng)建一個(gè)10x10的隨機(jī)數(shù)組并找到它的最大值和最小值()(提示 : min, max)Z = np.random.random(10,10)Zmin, Zmax = Z.min(), Z.max()print(Zmin, Zmax)14. 創(chuàng)建一個(gè)長度為30 的隨機(jī)向量并找到它的平均值()(提示 : mean)Z = np.rand

5、om.random(30)m = Z.mean()print(m)15. 創(chuàng)建一個(gè)二維數(shù)組,其中邊界值為1,其余值為0 ( )(提示 : array1:-1, 1:-1)Z = np.ones(10,10)Z1:-1,1:-1 = 0print(Z)16. 對(duì)于一個(gè)存在在數(shù)組,如何添加一個(gè)用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 =

6、 not a number, 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)print(np.nan - np.nan)print(0.3 = 3 * 0.1)18. 創(chuàng)建一個(gè)5x5 的矩陣,并設(shè)置值1,2,3,4 落在其對(duì)角線下方位置()(提示 : np.diag)Z = np.diag(1+np.arange(4),k=-1)print(Z

7、)19. 創(chuàng)建一個(gè)8x8 的矩陣,并且設(shè)置成棋盤樣式()(提示 : array:2)Z = np.zeros(8,8),dtype=int)Z1:2,:2 = 1Z:2,1:2 = 1print(Z)20. 考慮一個(gè) (6,7,8) 形狀的數(shù)組,其第 100 個(gè)元素的索引 (x,y,z) 是什么 ? (提示 : np.unravel_index)print(np.unravel_index(100,(6,7,8)21. 用 tile 函數(shù)去創(chuàng)建一個(gè) 8x8 的棋盤樣式矩陣 ()(提示 : np.tile)Z = np.tile( np.array(0,1,1,0), (4,4)print(Z)

8、22. 對(duì)一個(gè) 5x5 的隨機(jī)矩陣做歸一化()(提示 : (x - min) / (max - min)Z = np.random.random(5,5)Zmax, Zmin = Z.max(), Z.min()Z = (Z - Zmin)/(Zmax - Zmin)print(Z)23. 創(chuàng)建 一個(gè) 將 顏色描 述 為 (RGBA) 四 個(gè)無 符號(hào) 字節(jié) 的自 定 義dtype ?()(提示 : np.dtype)color = np.dtype("r", np.ubyte, 1),("g", np.ubyte, 1),("b",

9、np.ubyte, 1),("a", np.ubyte, 1)color24. 一個(gè) 5x3 的矩陣與一個(gè)3x2 的矩陣相乘,實(shí)矩陣乘積是什么?()(提示 : np.dot | )Z = np.dot(np.ones(5,3), np.ones(3,2)print(Z)25. 給定一個(gè)一維數(shù)組,對(duì)其在3 到 8 之間的所有元素取反( )(提示 : >, <=)Z = np.arange(11)Z(3 < Z) & (Z <= 8) *= -1print(Z)26. 下面腳本運(yùn)行后的結(jié)果是什么? ()(提示 : np.sum)print(sum

10、(range(5),-1)from numpy import *print(sum(range(5),-1)print(sum(range(5),-1)from numpy import *print(sum(range(5),-1)27. 考慮一個(gè)整數(shù)向量 Z, 下列表達(dá)合法的是哪個(gè) ? ()Z*Z2<<Z>>2Z <- Z 1j*Z Z/1/1 ZZZ = np.arange(5)Z * Z # legalarray(1,1,4,27, 256)Z = np.arange(5)2 << Z >> 2 # falsearray(0, 1,

11、 2, 4, 8)Z = np.arange(5)Z <- 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: The truth value of an array with more than one e

12、lement is ambiguous. Use a.any() or a.all()28. 下列表達(dá)式的結(jié)果分別是什么?()np.array(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. 如何從零位對(duì)浮點(diǎn)數(shù)組做舍入? ()(提示 : np.unifo

13、rm, np.copysign, np.ceil, np.abs)Z = np.random.uniform(-10,+10,10)print (np.copysign(np.ceil(np.abs(Z), Z)30. 如何找到兩個(gè)數(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.errsta

14、te)# Suicide mode ondefaults = np.seterr(all="ignore")Z = np.ones(1) / 0# Back to sanity_ = np.seterr(*defaults)An equivalent way, with a context manager:with np.errstate(divide='ignore'):Z = np.ones(1) / 032. 下面的表達(dá)式是正確的嗎? ( )(提示 : imaginary number)np.sqrt(-1) = np.emath.sqrt(-1)np

15、.sqrt(-1) = np.emath.sqrt(-1)False33. 如何得到昨天,今天,明天的日期? ()(提示 : np.datetime64, np.timedelta64)yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')today= np.datetime64('today', 'D')tomorrow = np.datetime64('today', 'D') + np.timedelta

16、64(1, 'D')print ("Yesterday is " + str(yesterday)print ("Today is " + str(today)print ("Tomorrow is "+ str(tomorrow)34. 如何得到所有與2016 年 7 月對(duì)應(yīng)的日期?()(提示 : np.arange(dtype=datetime64'D')Z = np.arange('2016-07', '2016-08', dtype='datetime64

17、D')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.divide(A,2,out=A)np.negative(A,out=A)np.multiply(A,B,out=A)array(-1.5, -1.5, -1.5)36. 用五種不同的方法去提取一個(gè)隨機(jī)數(shù)組的整數(shù)部分

18、()(提示 : %, 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)-1)print (Z.astype(int)print (np.trunc(Z)37. 創(chuàng)建一個(gè)5x5 的矩陣,其中每行的數(shù)值范圍從0 到 4 ( )(提示 : np.arange)Z = np.zeros(5,5)Z += np.arange(5)print (Z)38. 通過考慮一個(gè)可生成10 個(gè)整數(shù)的函數(shù),來構(gòu)建一個(gè)數(shù)組( )(提示 :

19、 np.fromiter)def generate():for x in range(10):yield xZ = np.fromiter(generate(),dtype=float,count=-1)print (Z)0. 1. 2. 3. 4. 5. 6. 7. 8. 9.39. 創(chuàng)建一個(gè)長度為10 的隨機(jī)向量,其值域范圍從0 到1,但是不包括0和 1 ()(提示 : np.linspace)Z = np.linspace(0,1,11,endpoint=False)1:print (Z)40. 創(chuàng)建一個(gè)長度為10 的隨機(jī)向量,并將其排序()(提示 : sort)Z = np.rando

20、m.random(10)Z.sort()print (Z)41.對(duì)于一個(gè)小數(shù)組,如何用比np.sum 更快的方式對(duì)其求和?( )(提示 : np.add.reduce)Z = np.arange(10)np.add.reduce(Z)42. 對(duì)于兩個(gè)隨機(jī)數(shù)組A 和 B,檢查它們是否相等()(提示 : np.allclose, np.array_equal)A = np.random.randint(0,2,5)B = np.random.randint(0,2,5)# Assuming identical shape of the arrays and a tolerance for the

21、comparison of values equal = np.allclose(A,B)print(equal)False# 方法 2# Checking both the shape and the element values, no tolerance (values have to be exa ctly equal)equal = np.array_equal(A,B) print(equal)False43. 創(chuàng)建一個(gè)只讀數(shù)組(read-only) ()(提示 : flags.writeable)# 使用如下過程實(shí)現(xiàn)Z = np.zeros(10) Z.flags.writeab

22、le = False Z0 = 144. 將笛卡爾坐標(biāo)下的一個(gè) 10x2 的矩陣轉(zhuǎn)換為極坐標(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)建一個(gè)長度為10 的向量,并將向量中最大值替換為1 ( )(提示 : argmax)Z = np.random.random(10)ZZ.argmax() = 0print (Z)46. 創(chuàng)建 一個(gè) 結(jié)構(gòu) 化 數(shù)組 ,并 實(shí)現(xiàn)x和y坐標(biāo)

23、覆蓋0,1x0,1區(qū)域()(提示 : np.meshgrid)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)47. 給定兩個(gè)數(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

24、, Y)print(np.linalg.det(C)48. 打印每個(gè)numpy 標(biāo)量類型的最小值和最大值?( )(提示 : np.iinfo, np.finfo, eps)for dtype in 8, 32, 64: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)49. 如何打

25、印一個(gè)數(shù)組中的所有數(shù)值? ( )(提示 : np.set_printoptions)np.set_printoptions(threshold=np.nan)Z = np.zeros(16,16)print (Z)50. 給定標(biāo)量時(shí),如何找到數(shù)組中最接近標(biāo)量的值?()(提示 : argmin)Z = np.arange(100)v = np.random.uniform(0,100)index = (np.abs(Z-v).argmin()print (Zindex)51. 創(chuàng)建一個(gè)表示位置(x,y) 和顏色 (r,g,b) 的結(jié)構(gòu)化數(shù)組( )(提示 : dtype)Z = np.zeros(

26、10, ('position', ('x', float, 1),('y', float, 1),('color', ('r', float, 1),('g', float, 1),('b', float, 1)print (Z)52. 對(duì)一個(gè)表示坐標(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

27、= np.sqrt( (X-X.T)*2 + (Y-Y.T)*2)print (D)# 方法 2# Much faster with scipy import scipy# Thanks Gavin Heverly-Coulson (#issue 1) import scipy.spatialD = scipy.spatial.distance.cdist(Z,Z) print (D)53. 如何將 32 位的浮點(diǎn)數(shù)(float) 轉(zhuǎn)換為對(duì)應(yīng)的整數(shù)(integer)?(提示 : astype(copy=False)Z = np.arange(10, dtype=32)Z = Z.a

28、stype(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. 對(duì)于 numpy 數(shù)組, enumerate 的等價(jià)操作是什么?()(提示 : np.ndenumerate, np.ndindex)Z = np.arange(9).reshape(3,3)for index

29、, value in np.ndenumerate(Z):print (index, value)for index in np.ndindex(Z.shape):print (index, Zindex)56. 生成一個(gè)通用的二維 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)sigma, mu = 1.0, 0.0G = np.exp(-( (D-mu)*2 / ( 2.0 * si

30、gma*2 ) ) )print (G)57. 對(duì)一個(gè)二維數(shù)組,如何在其內(nèi)部隨機(jī)放置p 個(gè)元素 ? ()(提示 : 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. 減去一個(gè)矩陣中的每一行的平均值()(提示 : mean(axis=,keepdims=)X = np.random.rand(5, 10)# Recent versions of numpyY = X - X.mean(axis=1,

31、 keepdims=True)print(Y)# 方法 2# Older versions of numpyY = X - X.mean(axis=1).reshape(-1, 1)print (Y)59. 如何通過第n 列對(duì)一個(gè)數(shù)組進(jìn)行排序? ( )(提示 : argsort)Z = np.random.randint(0,10,(3,3)print (Z)print (ZZ:,1.argsort()60. 如何檢查一個(gè)二維數(shù)組是否有空列?( )(提示 : any, )Z = np.random.randint(0,3,(3,10)print (Z.any(axis=0).any()True

32、61. 從數(shù)組中的給定值中找出最近的值()(提示 : np.abs, argmin, flat)Z = np.random.uniform(0,1,10)z = 0.5m = Z.flatnp.abs(Z - z).argmin()print (m)0.553124919689175962. 如何 用 迭代 器 (iterator) 計(jì)算 兩個(gè) 分別 具 有形 狀 (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,

33、None)for x,y,z in it:z. = x + yprint (it.operands2)63. 創(chuàng)建一個(gè)具有name 屬性的數(shù)組類()(提示 : class 方法 )class NamedArray(np.ndarray):def _new_(cls, array, name="no name"):obj = np.asarray(array).view(cls) = namereturn objdef _array_finalize_(self, obj):if obj is None: = getattr(o

34、bj, 'name', "no name")Z = NamedArray(np.arange(10), "range_10")print (Z.name)range_1064. 考慮一個(gè)給定的向量,如何對(duì)由第二個(gè)向量索引的每個(gè)元素加1(小心重復(fù)的索引 )? ( )(提示 : np.bincount | np.add.at)Z = np.ones(10)I = np.random.randint(0,len(Z),20)Z += np.bincount(I, minlength=len(Z)print(Z)3. 1. 5. 4. 3. 4.

35、 2. 1. 4. 3.# 方法 2 np.add.at(Z, I, 1)print(Z)5. 1. 9. 7. 5. 7. 3. 1. 7. 5.65. 根據(jù)索引列表(I) ,如何將向量(X) 的元素累加到數(shù)組(F)? ( )(提示 : np.bincount)X = 1,2,3,4,5,6I = 1,3,9,3,4,1F = np.bincount(I,X)print (F)0. 7. 0. 6. 5. 0. 0. 0. 0. 3.66. 考慮一個(gè) (dtype=ubyte)的(w,h,3) 圖像,計(jì)算其唯一顏色的數(shù)量()(提示 : np.unique)w,h = 16,16I = np.

36、random.randint(0,2,(h,w,3).astype(np.ubyte)#Note that we should compute 256*256 first.#Otherwise numpy will only promote F.dtype to 'uint16' and overfolw will occur F = I.,0*(256*256) + I.,1*256 +I.,2n = len(np.unique(F)print (n)867. 考慮一個(gè)四維數(shù)組,如何一次性計(jì)算出最后兩個(gè)軸(axis) 的和? ()(提示 : sum(axis=(-2,-1)A

37、 = np.random.randint(0,10,(3,4,3,4)# solution by passing a tuple of axes (introduced in numpy 1.7.0) sum = A.sum(axis=(-2,-1)print (sum)# 方法 2sum = A.reshape(A.shape:-2 + (-1,).sum(axis=-1)print (sum)68. 考慮一個(gè)一維向量D ,如何使用相同大小的向量S 來計(jì)算D 子集的均值? ( )(提示 : np.bincount)D = np.random.uniform(0,1,100)S = np.ra

38、ndom.randint(0,10,100)D_sums = np.bincount(S, weights=D)D_counts = np.bincount(S)D_means = D_sums / D_countsprint (D_means)# 方法 2import pandas as pdprint(pd.Series(D).groupby(S).mean()69. 如何獲得點(diǎn)積 dot prodcut 的對(duì)角線 ? ( )(提示 : np.diag)A = np.random.uniform(0,1,(5,5)B = np.random.uniform(0,1,(5,5)# slow

39、version np.diag(np.dot(A, B)# 方法 2# Fast version np.sum(A * B.T, axis=1)# 方法 3# Faster versionnp.einsum("ij,ji->i", A, B)70. 考慮一個(gè)向量 1,2,3,4,5, 如何建立一個(gè)新的向量,在這個(gè)新向量中每個(gè)值之間有3 個(gè)連續(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)1. 0. 0.

40、 0. 2. 0. 0. 0. 3. 0. 0. 0. 4. 0. 0. 0. 5.71. 考慮一個(gè)維度(5,5,3) 的數(shù)組, 如何將其與一個(gè)(5,5) 的數(shù)組相乘?()(提示 : array:, :, None)A = np.ones(5,5,3)B = 2*np.ones(5,5)print (A * B:,:,None)72. 如何對(duì)一個(gè)數(shù)組中任意兩行做交換? ()(提示 : array = array)A = np.arange(25).reshape(5,5)A0,1 = A1,0print (A)73. 考慮一個(gè)可以描述10 個(gè)三角形的triplets,找到可以分割全部三角形的l

41、ine segmentConsider a set of 10 triplets describing 10 triangles (with shared vertices), findthe set of unique line segments composing all the triangles ()(提示 : 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(

42、len(F)*3,2)F = np.sort(F,axis=1)G = F.view( dtype=('p0',F.dtype),('p1',F.dtype) )G = np.unique(G)print (G)74. 給定一個(gè)二進(jìn)制的數(shù)組 C,如何產(chǎn)生一個(gè)數(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. 如何通過滑動(dòng)窗口計(jì)算一個(gè)數(shù)組的平均數(shù)? ( )(提示 : n

43、p.cumsum)def moving_average(a, n=3) :ret = np.cumsum(a, dtype=float)retn: = retn: - ret:-nreturn retn - 1: / nZ = np.arange(20)print(moving_average(Z, n=3) ..9. 10. 11. 12. 13. 14. 15. 16. 17. 18.76. Consider a one-dimensional array Z, build a two-dimensional array whose first row is (

44、Z0,Z1,Z2) and each subsequent row is shifted by 1(last row should be (Z-3,Z-2,Z-1) ()(提示 : from numpy.lib import stride_tricks)from numpy.lib import stride_tricksdef rolling(a, window):shape = (a.size - window + 1, window)strides = (a.itemsize, a.itemsize)return stride_tricks.as_strided(a, shape=sha

45、pe, strides=strides)Z = rolling(np.arange(10), 3)print (Z)77. 如何 對(duì)布 爾 值取 反, 或者 原位 (in-place) 改變 浮點(diǎn) 數(shù)的 符號(hào) (sign) ?()(提示 : np.logical_not, np.negative)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)78. 考慮兩組點(diǎn)集 P0 和 P1 去描述一組線 ( 二維 )和一個(gè)點(diǎn) p, 如

46、何計(jì)算點(diǎn) p到每一條線i (P0i,P1i)的距離? ()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,(

47、 1,2)print (distance(P0, P1, p)79.考慮兩組點(diǎn)集 P0 和 P1 去描述一組線 ( 二維 ) 和一組點(diǎn)集 P,如何計(jì)算每一個(gè)點(diǎn) j(Pj) 到每一條線 i (P0i,P1i) 的距離? ()# based on distance function from previous question 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(

48、P0,P1,p_i) for p_i in p)80.Consider an arbitrary array, write a function that extract a subpart with a fixed shape and centered on a given element (pad with a fill value whennecessary) ( )(hint: minimum, maximum)Z = np.random.randint(0,10,(10,10)shape = (5,5)fill = 0position = (1,1)R = np.ones(shape

49、, dtype=Z.dtype)*fillP = np.array(list(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-Rs/2)Z_stop = (P+Rs/2)+Rs%2R_start = (R_start - np.minimum(Z_start,0).tolist()Z_start = (np.maximum(Z_start,0).tolist()R_stop = np.maximum(R_start, (R_stop - np.maximum(Z_stop-Zs,0).tolist()Z_stop = (np.minimum(Z_stop,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論