Numpy闯关100题,你能闯几关?向量随机数numpy整数

Numpy是Python做数据分析所必须要掌握的基础库之一,以下题是github上的开源项目,主要为了检测你的Numpy能力,同时对你的学习作为一个补充。

(提示:import…as…)

importnumpyasnp

2.打印输出numpy的版本和配置信息(★☆☆)

(提示:np.version,np.show_config)

print(np.__version__)print(np.show_config())

3.创建一个长度为10的空向量(★☆☆)

(提示:np.zeros)

Z=np.zeros(10)print(Z)

4.如何找到任何一个数组的内存大小?(★☆☆)

(提示:size,itemsize)

Z=np.zeros((10,10))print("%dbytes"%(Z.size*Z.itemsize))

5.如何从命令行得到numpy中add函数的说明文档(★☆☆)

(提示:np.info)

importnumpynumpy.info(numpy.add)

6.创建一个长度为10并且除了第五个值为1的空向量(★☆☆)

(提示:array[4])

Z=np.zeros(10)Z[4]=1print(Z)

7.创建一个值域范围从10到49的向量(★☆☆)

(提示:np.arange)

Z=np.arange(10,50)print(Z)

8.反转一个向量(第一个元素变为最后一个)(★☆☆)

(提示:array[::-1])

Z=np.arange(50)Z=Z[::-1]print(Z)

9.创建一个3x3并且值从0到8的矩阵(★☆☆)

(提示:reshape)

Z=np.arange(9).reshape(3,3)print(Z)

10.找到数组[1,2,0,0,4,0]中非0元素的位置索引(★☆☆)

(提示:np.nonzero)

nz=np.nonzero([1,2,0,0,4,0])print(nz)

11.创建一个3x3的单位矩阵(★☆☆)

(提示:np.eye)

Z=np.eye(3)print(Z)

12.创建一个3x3x3的随机数组(★☆☆)

(提示:np.random.random)

Z=np.random.random((3,3,3))print(Z)

13.创建一个10x10的随机数组并找到它的最大值和最小值(★☆☆)

(提示:min,max)

Z=np.random.random((10,10))Zmin,Zmax=Z.min(),Z.max()print(Zmin,Zmax)

14.创建一个长度为30的随机向量并找到它的平均值(★☆☆)

(提示:mean)

Z=np.random.random(30)m=Z.mean()print(m)

15.创建一个二维数组,其中边界值为1,其余值为0(★☆☆)

(提示:array[1:-1,1:-1])

Z=np.ones((10,10))Z[1:-1,1:-1]=0print(Z)

16.对于一个存在在数组,如何添加一个用0填充的边界(★☆☆)

(提示:np.pad)

Z=np.ones((5,5))Z=np.pad(Z,pad_width=1,mode='constant',constant_values=0)print(Z)

17.下面表达式运行的结果是什么?(★☆☆)

(提示:NaN=notanumber,inf=infinity)(提示:NaN:不是一个数,inf:无穷)

#表达式#结果0*np.nannannp.nan==np.nanFalsenp.inf>np.nanFalsenp.nan-np.nannan0.3==3*0.1False

18.创建一个5x5的矩阵,并设置值1,2,3,4落在其对角线下方位置(★☆☆)

(提示:np.diag)

Z=np.diag(1+np.arange(4),k=-1)print(Z)

19.创建一个8x8的矩阵,并且设置成棋盘样式(★☆☆)

(提示:array[::2])

Z=np.zeros((8,8),dtype=int)Z[1::2,::2]=1Z[::2,1::2]=1print(Z)

20.考虑一个(6,7,8)形状的数组,其第100个元素的索引(x,y,z)是什么

(提示:np.unravel_index)

print(np.unravel_index(100,(6,7,8)))

21.用tile函数去创建一个8x8的棋盘样式矩阵(★☆☆)

(提示:np.tile)

Z=np.tile(np.array([[0,1],[1,0]]),(4,4))print(Z)

22.对一个5x5的随机矩阵做归一化(★☆☆)

(提示:(x-min)/(max-min))

Z=np.random.random((5,5))Zmax,Zmin=Z.max(),Z.min()Z=(Z-Zmin)/(Zmax-Zmin)print(Z)

23.创建一个将颜色描述为(RGBA)四个无符号字节的自定义dtype?(★☆☆)

(提示:np.dtype)

color=np.dtype([("r",np.ubyte,1),("g",np.ubyte,1),("b",np.ubyte,1),("a",np.ubyte,1)])color

24.一个5x3的矩阵与一个3x2的矩阵相乘,实矩阵乘积是什么?(★☆☆)

(提示:np.dot|@)

Z=np.dot(np.ones((5,3)),np.ones((3,2)))print(Z)

25.给定一个一维数组,对其在3到8之间的所有元素取反(★☆☆)

(提示:>,<=)

Z=np.arange(11)Z[(3

26.下面脚本运行后的结果是什么(★☆☆)

(提示:np.sum)

#Author:JakeVanderPlas#结果

print(sum(range(5),-1))9fromnumpyimport*print(sum(range(5),-1))10#numpy.sum(a,axis=None)

27.考虑一个整数向量Z,下列表达合法的是哪个(★☆☆)

(提示:这里还有“位运算符”)

Z**ZTrue2<>2FalseZ<-ZTrue1j*ZTrue#复数Z/1/1TrueZZFalse

28.下面表达式的结果分别是什么?(★☆☆)

np.array(0)/np.array(0)nannp.array(0)//np.array(0)0np.array([np.nan]).astype(int).astype(float)-2.14748365e+09

29.如何从零位开始舍入浮点数组?(★☆☆)

(提示:np.uniform,np.copysign,np.ceil,np.abs)

#Author:CharlesRHarris

Z=np.random.uniform(-10,+10,10)print(np.copysign(np.ceil(np.abs(Z)),Z))

30.如何找出两个数组公共的元素(★☆☆)

(提示:np.intersect1d)

Z1=np.random.randint(0,10,10)Z2=np.random.randint(0,10,10)print(np.intersect1d(Z1,Z2))

31.如何忽略所有的numpy警告(尽管不建议这么做)(★☆☆)

(提示:np.seterr,np.errstate)

#Suicidemodeondefaults=np.seterr(all="ignore")Z=np.ones(1)/0

#Backtosanity_=np.seterr(**defaults)

#另一个等价的方式,使用上下文管理器(contextmanager)withnp.errstate(divide='ignore'):Z=np.ones(1)/0

32.下面的表达式是否为真(★☆☆)

(提示:虚数)

np.sqrt(-1)==np.emath.sqrt(-1)Faslse

33.如何获得昨天,今天和明天的日期(★☆☆)

(提示:np.datetime64,np.timedelta64)

yesterday=np.datetime64('today','D')-np.timedelta64(1,'D')today=np.datetime64('today','D')tomorrow=np.datetime64('today','D')+np.timedelta64(1,'D')

34.怎么获得所有与2016年7月的所有日期(★★☆)

(提示:np.arange(dtype=datetime64['D']))

Z=np.arange('2016-07','2016-08',dtype='datetime64[D]')print(Z)

35.如何计算((A+B)*(-A/2))(不使用中间变量)(★★☆)

(提示:np.add(out=),np.negative(out=),np.multiply(out=),np.divide(out=))

A=np.ones(3)*1B=np.ones(3)*1C=np.ones(3)*1np.add(A,B,out=B)np.divide(A,2,out=A)np.negative(A,out=A)np.multiply(A,B,out=A)

36.用5种不同的方法提取随机数组中的整数部分(★★☆)

(提示:%,np.floor,np.ceil,astype,np.trunc)

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))

37.创建一个5x5的矩阵且每一行的值范围为从0到4(★★☆)

Z=np.zeros((5,5))Z+=np.arange(5)print(Z)

38.如何用一个生成10个整数的函数来构建数组(★☆☆)

(提示:np.fromiter)

defgenerate():forxinrange(10):yieldxZ=np.fromiter(generate(),dtype=float,count=-1)print(Z)

39.创建一个大小为10的向量,值域为0到1,不包括0和1(★★☆)

(提示:np.linspace)

Z=np.linspace(0,1,12,endpoint=True)[1:-1]print(Z)

40.创建一个大小为10的随机向量,并把它排序(★★☆)

(提示:sort)

Z=np.random.random(10)Z.sort()print(Z)

41.对一个小数组进行求和有没有办法比np.sum更快(★★☆)

(提示:np.add.reduce)

#Author:EvgeniBurovski

Z=np.arange(10)np.add.reduce(Z)

#np.add.reduce是numpy.add模块中的一个ufunc(universalfunction)函数,C语言实现

42.如何判断两和随机数组相等(★★☆)

(提示:np.allclose,np.array_equal)

A=np.random.randint(0,2,5)B=np.random.randint(0,2,5)

#假设array的形状(shape)相同和一个误差容限(tolerance)equal=np.allclose(A,B)print(equal)

#检查形状和元素值,没有误差容限(值必须完全相等)equal=np.array_equal(A,B)print(equal)

43.把数组变为只读(★★☆)

(提示:flags.writeable)

Z=np.zeros(5)Z.flags.writeable=FalseZ[0]=1

44.将一个10x2的笛卡尔坐标矩阵转换为极坐标(★★☆)

(提示:np.sqrt,np.arctan2)

Z=np.random.random((10,2))X,Y=Z[:,0],Z[:,1]R=np.sqrt(X**2+Y**2)T=np.arctan2(Y,X)print(R)print(T)

45.创建一个大小为10的随机向量并且将该向量中最大的值替换为0(★★☆)

(提示:argmax)

Z=np.random.random(10)Z[Z.argmax()]=0print(Z)

46.创建一个结构化数组,其中x和y坐标覆盖[0,1]x[1,0]区域(★★☆)

(提示: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.给定两个数组X和Y,构造柯西(Cauchy)矩阵C()(★★☆)

(提示:np.subtract.outer)

X=np.arange(8)Y=X+0.5C=1.0/np.subtract.outer(X,Y)print(C)print(np.linalg.det(C))#计算行列式

48.打印每个numpy类型的最小和最大可表示值(★★☆)

(提示:np.iinfo,np.finfo,eps)

fordtypein[np.int8,np.int32,np.int64]:print(np.iinfo(dtype).min)print(np.iinfo(dtype).max)fordtypein[np.float32,np.float64]:print(np.finfo(dtype).min)print(np.finfo(dtype).max)print(np.finfo(dtype).eps)

49.如何打印数组中所有的值?(★★☆)

(提示:np.set_printoptions)

np.set_printoptions(threshold=np.nan)Z=np.zeros((16,16))print(Z)

50.如何在数组中找到与给定标量接近的值(★★☆)

(提示:argmin)

Z=np.arange(100)v=np.random.uniform(0,100)index=(np.abs(Z-v)).argmin()print(Z[index])

51.创建表示位置(x,y)和颜色(r,g,b,a)的结构化数组(★★☆)

(提示:dtype)

Z=np.zeros(10,[('position',[('x',float,1),('y',float,1)]),('color',[('r',float,1),('g',float,1),('b',float,1)])])print(Z)

52.思考形状为(100,2)的随机向量,求出点与点之间的距离(★★☆)

(提示:np.atleast_2d,T,np.sqrt)

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)

#使用scipy库可以更快importscipy.spatial

Z=np.random.random((100,2))D=scipy.spatial.distance.cdist(Z,Z)print(D)

53.如何将类型为float(32位)的数组类型转换位integer(32位)(★★☆)

(提示:astype(copy=False))

Z=np.arange(10,dtype=np.int32)Z=Z.astype(np.float32,copy=False)print(Z)

54.如何读取下面的文件(★★☆)

(提示:np.genfromtxt)

1,2,3,4,56,,,7,8,,9,10,11

#先把上面保存到文件example.txt中#这里不使用StringIO,因为Python2和Python3在这个地方有兼容性问题Z=np.genfromtxt("example.txt",delimiter=",")print(Z)

55.numpy数组枚举(enumerate)的等价操作(★★☆)

(提示:np.ndenumerate,np.ndindex)

Z=np.arange(9).reshape(3,3)forindex,valueinnp.ndenumerate(Z):print(index,value)forindexinnp.ndindex(Z.shape):print(index,Z[index])

56.构造一个二维高斯矩阵(★★☆)

(提示:np.meshgrid,np.exp)

X,Y=np.meshgrid(np.linspace(-1,1,10),np.linspace(-1,1,10))D=np.sqrt(X**2+Y**2)sigma,mu=1.0,0.0G=np.exp(-((D-mu)**2/(2.0*sigma**2)))print(G)

57.如何在二维数组的随机位置放置p个元素(★★☆)

(提示:np.put,np.random.choice)

#Author:Divakar

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=))

#Author:WarrenWeckesser

X=np.random.rand(5,10)

#新Y=X-X.mean(axis=1,keepdims=True)

#旧Y=X-X.mean(axis=1).reshape(-1,1)

print(Y)

59.如何对数组通过第n列进行排序(★★☆)

(提示:argsort)

#Author:SteveTjoa

Z=np.random.randint(0,10,(3,3))print(Z)print(Z[Z[:,1].argsort()])

60.如何判断一个给定的二维数组存在空列(★★☆)

(提示:any,~)

Z=np.random.randint(0,3,(3,10))print((~Z.any(axis=0)).any())

61.从数组中找出与给定值最接近的值(★★☆)

(提示:np.abs,argmin,flat)

Z=np.random.uniform(0,1,10)z=0.5m=Z.flat[np.abs(Z-z).argmin()]print(m)

62.思考形状为(1,3)和(3,1)的两个数组形状,如何使用迭代器计算它们的和(★★☆)

(提示: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.operands[2])

63.创建一个具有name属性的数组类(★★☆)

(提示:classmethod)

classNameArray(np.ndarray):def__new__(cls,array,name="noname"):obj=np.asarray(array).view(cls)obj.name=namereturnobjdef__array_finalize__(self,obj):ifobjisNone:returnself.info=getattr(obj,'name',"noname")

Z=NameArray(np.arange(10),"range_10")print(Z.name)

64.给定一个向量,如何让在第二个向量索引的每个元素加1(注意重复索引)(★★★)

(提示:np.bincount|np.add.at)

#Author:BrettOlsen

Z=np.ones(10)I=np.random.randint(0,len(Z),20)Z+=np.bincount(I,minlength=len(Z))print(Z)

#Anothersolution#Author:BartoszTelenczuknp.add.at(Z,I,1)print(Z)

65.如何根据索引列表I将向量X的元素累加到数组F(★★★)

(提示:np.bincount)

#Author:AlanGIsaac

X=[1,2,3,4,5,6]I=[1,3,9,3,4,1]F=np.bincount(I,X)print(F)

66.思考(dtype=ubyte)的(w,h,3)图像,计算唯一颜色的值(★★★)

(提示:np.unique)

#Author:NadavHoresh

w,h=16,16I=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))

67.思考如何求一个四维数组最后两个轴的数据和(★★★)

(提示:sum(axis=(-2,-1)))

A=np.random.randint(0,10,(3,4,3,4))#传递一个元组(numpy1.7.0)sum=A.sum(axis=(-2,-1))print(sum)

#将最后两个维度压缩为一个#(适用于不接受轴元组参数的函数)sum=A.reshape(A.shape[:-2]+(-1,)).sum(axis=-1)print(sum)

68.考虑一维向量D,如何使用相同大小的向量S来计算D的子集的均值,其描述子集索引?(★★★)

#Author:JaimeFernándezdelRío

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)

#Pandassolutionasareferenceduetomoreintuitivecodeimportpandasaspdprint(pd.Series(D).groupby(S).mean())

69.如何获得点积的对角线?(★★★)

#Author:MathieuBlondel

A=np.random.uniform(0,1,(5,5))B=np.random.uniform(0,1,(5,5))

#Slowversionnp.diag(np.dot(A,B))

#Fastversionnp.sum(A*B.T,axis=1)

#Fasterversionnp.einsum("ij,ji->i",A,B)

70.考虑向量[1,2,3,4,5],如何建立一个新的向量,在每个值之间交错有3个连续的零?(★★★)

(提示: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)

71.考虑一个维度(5,5,3)的数组,如何将其与一个(5,5)的数组相乘?(★★★)

(提示:array[:,:,None])

A=np.ones((5,5,3))B=2*np.ones((5,5))print(A*B[:,:,None])

72.如何对一个数组中任意两行做交换(★★★)

(提示:array[[]]=array[[]])

#Author:EelcoHoogendoorn

A=np.arange(25).reshape(5,5)A[[0,1]]=A[[1,0]]print(A)

73.思考描述10个三角形(共享顶点)的一组10个三元组,找到组成所有三角形的唯一线段集(★★★)

(提示:repeat,np.roll,np.sort,view,np.unique)

#Author:NicolasP.Rougier

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=[('p0',F.dtype),('p1',F.dtype)])G=np.unique(G)print(G)

74.给定一个二进制的数组C,如何生成一个数组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)

75.如何通过滑动窗口计算一个数组的平均数(★★★)

(提示:np.cumsum)

defmoving_average(a,n=3):ret=np.cumsum(a,dtype=float)ret[n:]=ret[n:]-ret[:-n]returnret[n-1:]/nZ=np.arange(20)print(moving_average(Z,n=3))

76.思考以为数组Z,构建一个二维数组,其第一行是(Z[0],Z[1],Z[2]),然后每一行移动一位,最后一行为(Z[-3],Z[-2],Z[-1])(★★★)

(提示:fromnumpy.libimportstride_tricks)

#Author:JoeKington/ErikRigtorpfromnumpy.libimportstride_tricks

defrolling(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.如何对布尔值取反,或改变浮点数的符号(sign)(★★★)

(提示:np.logical_not,np.negative)

#Author:NathanielJ.Smith

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.思考两组点集P0和P1去描述一组线(二维)和一个点p,如何计算点p到每一条线i(P0[i],P1[i])的距离?(★★★)

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.uniform(-10,10,(10,2))p=np.random.uniform(-10,10,(1,2))print(distance(P0,P1,p))

79.考虑两组点集P0和P1去描述一组线(二维)和一组点集P,如何计算每一个点j(P[j])到每一条线i(P0[i],P1[i])的距离(★★★)

#Author:ItalmassovKuanysh

#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([distance(P0,P1,p_i)forp_iinp]))

80.思考一个任意的数组,编写一个函数,该函数提取一个具有固定形状的子部分,并以一个给定的元素为中心(在该部分填充值)(★★★)

(提示:minimum,maximum)

#Author:NicolasRougier

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(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%2

R_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,Zs)).tolist()

r=[slice(start,stop)forstart,stopinzip(R_start,R_stop)]z=[slice(start,stop)forstart,stopinzip(Z_start,Z_stop)]R[r]=Z[z]print(Z)print(R)

81.考虑一个数组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]](★★★)

(提示:stride_tricks.as_strided)

#Author:StefanvanderWalt

Z=np.arange(1,15,dtype=np.uint32)R=stride_tricks.as_strided(Z,(11,4),(4,4))print(R)

82.计算矩阵的秩(★★★)

(提示: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.如何找出数组中出现频率最高的值(★★★)

(提示:np.bincount,argmax)

Z=np.random.randint(0,10,50)print(np.bincount(Z).argmax())

84.从一个10x10的矩阵中提取出连续的3x3区块(★★★)

#Author:ChrisBarker

Z=np.random.randint(0,5,(10,10))n=3i=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)

85.创建一个满足Z[i,j]==Z[j,i]的二维数组子类(★★★)

#Author:EricO.Lebigot#Note:onlyworksfor2darrayandvaluesettingusingindices

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)))S[2,3]=42print(S)

86.考虑p个nxn矩阵和一组形状为(n,1)的向量,如何直接计算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)

#Itworks,because:#Mis(p,n,n)#Vis(p,n,1)#Thus,summingoverthepairedaxes0and0(ofMandVindependently),#and2and1,toremainwitha(n,1)vector.

87.对于一个16x16的数组,如何得到一个区域的和(区域大小为4x4)(★★★)

(提示:np.add.reduceat)

#Author:RobertKern

Z=np.ones((16,16))k=4S=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)

88.如何利用numpy数组实现GameofLife(★★★)

(提示:GameofLife,GameofLife有哪些图形?)

defiterate(Z):#CountneighboursN=(Z[0:-2,0:-2]+Z[0:-2,1:-1]+Z[0:-2,2:]+Z[1:-1,0:-2]+Z[1:-1,2:]+Z[2:,0:-2]+Z[2:,1:-1]+Z[2:,2:])

#Applyrulesbirth=(N==3)&(Z[1:-1,1:-1]==0)survive=((N==2)|(N==3))&(Z[1:-1,1:-1]==1)Z[...]=0Z[1:-1,1:-1][birth|survive]=1returnZ

Z=np.random.randint(0,2,(50,50))foriinrange(100):Z=iterate(Z)print(Z)

89.如何找到一个数组的第n个最大值(★★★)

(提示:np.argsort|np.argpartition)

Z=np.arange(10000)np.random.shuffle(Z)n=5

#Slowprint(Z[np.argsort(Z)[-n:]])

#Fastprint(Z[np.argpartition(-Z,n)[:n]])

90.给定任意个数向量,创建笛卡尔积(每一个元素的每一种组合)(★★★)

(提示:np.indices)

#Author:StefanVanderWalt

defcartesian(arrays):arrays=[np.asarray(a)forainarrays]shape=(len(x)forxinarrays)

ix=np.indices(shape,dtype=int)ix=ix.reshape(len(arrays),-1).T

forn,arrinenumerate(arrays):ix[:,n]=arrays[n][ix[:,n]]

returnix

print(cartesian(([1,2,3],[4,5],[6,7])))

91.如何从一个常规数组中创建记录数组(recordarray)(★★★)

(提示:np.core.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)

92.思考一个大向量Z,用三种不同的方法计算它的立方(★★★)

(提示:np.power,*,np.einsum)

#Author:RyanG.

x=np.random.rand(5e7)

%timeitnp.power(x,3)%timeitx*x*x%timeitnp.einsum('i,i,i->i',x,x,x)

93.考虑两个形状分别为(8,3)和(2,2)的数组A和B.如何在数组A中找到满足包含B中元素的行?(不考虑B中每行元素顺序)?(★★★)

(提示:np.where)

#Author:GabeSchwartz

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)

94.思考一个10x3的矩阵,如何分解出有不全相同值的行(如[2,2,3])(★★★)

Z=np.random.randint(0,5,(10,3))print(Z)#solutionforarraysofalldtypes(includingstringarraysandrecordarrays)E=np.all(Z[:,1:]==Z[:,:-1],axis=1)U=Z[~E]print(U)#soluitonfornumericalarraysonly,willworkforanynumberofcolumnsinZU=Z[Z.max(axis=1)!=Z.min(axis=1),:]print(U)

95.将一个整数向量转换为二进制矩阵(★★★)

(提示:np.unpackbits)

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])

#Author:DanielT.McDonald

I=np.array([0,1,2,3,15,16,32,64,128],dtype=np.uint8)print(np.unpackbits(I[:,np.newaxis],axis=1))

96.给定一个二维数组,如何提取出唯一的行(★★★)

(提示:np.ascontiguousarray)

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)

97.考虑两个向量A和B,写出用einsum等式对应的inner,outer,sum,mul函数(★★★)

(提示:np.einsum)

A=np.random.uniform(0,1,10)B=np.random.uniform(0,1,10)

np.einsum('i->',A)#np.sum(A)np.einsum('i,i->i',A,B)#A*Bnp.einsum('i,i',A,B)#np.inner(A,B)np.einsum('i,j->ij',A,B)#np.outer(A,B)

98.考虑一个由两个向量描述的路径(X,Y),如何用等距样例(equidistantsamples)对其进行采样(sample)(★★★)

(提示:np.cumsum,np.interp)

#Author:BasSwinckels

phi=np.arange(0,10*np.pi,0.1)a=1x=a*phi*np.cos(phi)y=a*phi*np.sin(phi)

dr=(np.diff(x)**2+np.diff(y)**2)**.5#segmentlengthsr=np.zeros_like(x)r[1:]=np.cumsum(dr)#integratepathr_int=np.linspace(0,r.max(),200)#regularspacedpathx_int=np.interp(r_int,r,x)#integratepathy_int=np.interp(r_int,r,y)

99.给定一个整数n和一个二维数组X,从X中选择可以被解释为从多n度的多项分布式的行,即这些行只包含整数对n的和.(★★★)

(提示:np.logical_and.reduce,np.mod)

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=4M=np.logical_and.reduce(np.mod(X,1)==0,axis=-1)M&=(X.sum(axis=-1)==n)print(X[M])

100.对于一个一维数组X,计算它boostrapped之后的95%置信区间的平均值.(★★★)

(提示:np.percentile)

#Author:JessicaB.Hamrick

X=np.random.randn(100)#random1DarrayN=1000#numberofbootstrapsamplesidx=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)

THE END
1.26个元素符号是什么?我只要26个元素符号,不要全部的元素符号我只要26个元素符号,不要全部的元素符号…… 扫码下载作业帮搜索答疑一搜即得 答案解析 查看更多优质解析 解答一 举报 1 H氢1.0079 2 He氦4.0026 3 Li锂6.941 4 Be铍9.0122 5 B硼10.811 6 C碳12.011 7 N氮14.007 8 O氧15.999 9 F氟18.998 10 Ne氖20.17 11 Na钠22.989812 Mg镁24.305 13 Al铝26.982 14 https://qb.zuoyebang.com/xfe-question/question/d3dd70496a142f9d9963cd9116773699.html
2.元素符号的意义及常见26个元素符号介绍可爱表情符号发音:[?mɡ?ni?z],发音近似于"mang-guh-neez" Fe - 铁(Iron) 发音:[?an],发音近似于"eye-uhn" 这26个元素符号和发音在化学和科学领域中非常重要,用于标识和讨论不同元素及它们的化学性质。希望这个信息对你有所帮助。https://www.lovelyemoji.com/fuhao/14180.html
3.已知某元素的原子序数为26,则其元素符号为Mn。已知某元素的原子序数为26,则其元素符号为Mn。 A. 正确 B. 错误 题目标签:原子序数元素元素符号如何将EXCEL生成题库手机刷题 如何制作自己的在线小题库 > 手机使用 分享 反馈 收藏 举报 参考答案: B 复制 纠错举一反三 某旅行社导游员张某带团赴三峡旅游,行程期间,因住宿和用餐标准与旅游者甲等12人发生https://www.shuashuati.com/ti/8ef093fe5f564847931069b77b03fbf3.html?fm=bd9bb616ea6762f96f5a4725909accd78b
4.31个绝美张家川元素符号,惊艳无比,值得收藏~31个绝美张家川元素符号,惊艳无比,值得收藏~ 张家川古称长家川,张与长音近,故名。另说,后川河古称长家川,因汉代的张骞及其子张绵和张絮皆葬于此地而得名。 但您是否真正了解张家川呢? 来看看那些属于张家川的专属元素符号 一起来见证 独具特色的张家川美https://www.tianshui.gov.cn/wlj/info/1802/184732.htm
5.2024秋最新版初中化学教材变化一览1.表述:在地壳中含量较少的碳、氢、氮等元素,对动植物的生命活动有着重要作用。(新增) 1.删除资料卡片:生物细胞中的元素 2.原教材图3-18:多种多样的物质及其组成中表述“氨”变为“氨气” 二、元素符号 1.一百多种元素及其组成的上亿中物质将十分麻烦。 https://www.meipian.cn/562dczdv
6.人体中必需的微量元素铁.氟.锌.硒.碘等.虽然含量少.但对降至关(1)上述微量元素中锌的相对原子质量为65.4,铁原子核外电子数为26.(2)氟元素的原子在化学反应中易得到(选填“得到”或“失去”) 电子,画出氟离子的结构示意图.(3)硒元素的符号为Se,请写出硒离子的离子符号Se2-. 试题答案 分析(1)根据元素周期表和原子结构的信息来分析;(2)根据原子结构的最外层电子数及https://m.1010jiajiao.com/czhx/shiti_id_007e77de27f15616b58702c5116784c7
7.化学元素超重元素(在钚以后,原子序大于94的元素)其核衰变的半衰期非常短,因此不可能于自然界稳定存在,属于人工合成元素。 原子序 原子序数 是一个原子核内质子的数量,也决定元素的性质 [9] 。拥有同一原子序数的原子属于同一化学元素。原子序数的符号是 Z 。例如所有的碳原子的原子核都有六个质子,因此碳的原子序数是6http://mp2.allhistory.com/detail/592414b355b54278ac001cfb
8.C语言中的宏定义宏定义的值可以改变吗在C语言的宏中,"##"被称为连接符(concatenator),它是一种预处理运算符, 用来把两个语言符号(Token)组合成单个语言符号。 这里的语言符号不一定是宏的变量。并且双井号不能作为第一个或最后一个元素存在. ##运算符可以将两个记号(例如标识符)“粘”在一起,成为一个记号。(无需惊讶,##运算符被称为“记https://blog.csdn.net/hguisu/article/details/7470695
9.32个化学元素符号怎么写游戏攻略游戏资讯32个化学元素符号怎么写 化学元素符号是化学中的重要组成部分,它们是由拉丁字母、希腊字母和数字等组成的简洁符号,用于表示元素的名称和化学性质。目前,已经发现了118种元素,其中前32种元素的符号如下: 1. 氢:H 2. 氦:He 3. 锂:Li 4. 铍:Be 5. 碳:Chttp://www.eco-hongyi.org/zixun/13222.html
10.微量元素有哪些化学符号(26个微量元素简称)–答案胶囊植物整个生长期内所必需的营养元素是:碳(C)、氢(H)、氧(O)、氮(N)、磷(P)、钾(K)、钙(Ca)、镁(Mg)、硫(S)、铁(Fe)、锰(Mn)、锌(Zn)、铜(Cu)、钼(Mo)、硼(B)、氯(CL)十六种。 这十六种必须的营养元素又可分为大量营养元素、中量营养元素、微量营养元素。 https://www.17yihao.com/14791.html
11.[26个字母艺术字]图片免费下载26个字母艺术字素材千图网为您找到440张26个字母艺术字相关素材,千图网还提供26个字母艺术字图片,26个字母艺术字素材, 26个字母艺术字模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://m.58pic.com/tupian/26gezimuyishuzi.html
12.一次记住26个元素的汉字和英语字母接着第三类全部是金字篇,这样就解决了第一个问题。 接着来解决第二个问题:对于每一个元素,从元素符号到字母用一句话连接起来,同时注意首字母大写即可: 1.氢H 我提着一桶洗脚水,轻轻(氢)地爬上梯子(形象记忆:H像梯子),然后把洗脚水倒在大灰狼头(这里可以根据各位的需要换上你们认为合适的任何人的名字,除了https://www.jianshu.com/p/dc9fbed1666c
13.原子的核外电子排布式为,它位于第周期第26号元素原子的核外电子排布式为___,它位于第___周期___族,其元素符号为___。扫码下载作业帮搜索答疑一搜即得 答案解析 查看更多优质解析 解答一 举报 1s 2 2s 2 2p 6 3s 2 3p 6 3d 6 4s 2;4;Ⅷ;Fe 【试题分析】 解析看不懂?免费查看同类题视频解析查看解答 特别推荐 热点考点 2022年https://www.zybang.com/question/2c76cfffdc5d6a941417ae2cde059ef8.html
14.西安市优质教育资源共享平台从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号p(n,m)表示. p(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)!(规定0!=1).http://www.xaeduyun.cn/s2d64/ablog/cblog/mblogBrowse.do?blogid=2c9081637d336cff017d3c6b751b0f84
15.21元素周期表中,21到30号元素名称和符号分别是21号钪Sc,22号 钛Ti , 23号钒V, 24号铬Cr ,25号锰Mn ,26号铁Fe,27号钴Co,28号镍Ni ,29号铜Cu,30号锌Zn。 这十种元素全部由长周期构成,属于七个副族和一个八族,是由二主族到三主族的过渡,又全是金属,所以叫过渡元素,又叫过渡金属。 21-30元素原子https://m.iask.sina.com.cn/b/newqTTAIGKk3j5.html