numpy练习题.docx

上传人:b****5 文档编号:8275068 上传时间:2023-01-30 格式:DOCX 页数:15 大小:19.69KB
下载 相关 举报
numpy练习题.docx_第1页
第1页 / 共15页
numpy练习题.docx_第2页
第2页 / 共15页
numpy练习题.docx_第3页
第3页 / 共15页
numpy练习题.docx_第4页
第4页 / 共15页
numpy练习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

numpy练习题.docx

《numpy练习题.docx》由会员分享,可在线阅读,更多相关《numpy练习题.docx(15页珍藏版)》请在冰豆网上搜索。

numpy练习题.docx

numpy练习题

Numpy拓展练习一

1、在python环境中导入numpy包,并命名为np

importnumpyasnp

2、查看numpy版本和配置信息

printnp.__version__

np.__config__.show()

3、创建零向量,zeros函数

z=np.zeros((2,3))

printz

[[0.0.0.]

[0.0.0.]]

4、将上面的零向量的第二行第三列元素置为1。

注意python中行列下班是从0开始。

z[1,2]=1

printz

[[0.0.0.]

[0.0.1.]]

5、arange函数,创建一个在给定范围的向量。

z=np.arange(1,101)%1~100范围,注意不包括101

printz

6、reshape函数,将array变形为矩阵

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

printZ

[[012]

[345]

[678]]

7、nonzero函数,寻找非0元素的下标

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

nz

(array([0,1,2,5]),)

8、eye函数,生成单位向量

z=np.eye(3)

printz

[[1.0.0.]

[0.1.0.]

[0.0.1.]]

9、diag函数,diagonal对角线。

z=np.diag([1,2,3,4],k=0)%k=0,以[1,2,3,4]为对角线

printz

[[1000]

[0200]

[0030]

[0004]]

z=np.diag([1,2,3,4],k=1)%k=1,[1,2,3,4]在对角线上一行

printz

[[01000]

[00200]

[00030]

[00004]

[00000]]

z=np.diag([1,2,3,4],k=-1)%k=-1,[1,2,3,4]在对角线下一行

printz

[[00000]

[10000]

[02000]

[00300]

[00040]]

10、random模块的random函数,生成随机数

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

printZ

[[0.951714840.613941260.38864802]

[0.419439180.93987140.31608202]

[0.99935070.917170930.73002723]]

11、创建一个8*8的“棋盘”矩阵。

z=np.zeros((8,8),dtype=int)

z[1:

:

2,:

:

2]=1%1、3、5、7行&&0、2、4、6列的元素置为1

printz

[[00000000]

[10101010]

[00000000]

[10101010]

[00000000]

[10101010]

[00000000]

[10101010]]

z[:

:

2,1:

:

2]=1

printz

[[01010101]

[10101010]

[01010101]

[10101010]

[01010101]

[10101010]

[01010101]

[10101010]]

12、min()、max()函数

z=np.random.random((10,10))

zmin,zmax=z.min(),z.max()

printzmin,zmax

0.0142305016320.99548760299

13、函数tile(A,reps),reps即重复的次数,不仅可以是数字,还可以是array。

比如构造棋盘矩阵:

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

printz

[[01010101]

[01010101]

[01010101]

[01010101]

[01010101]

[01010101]

[01010101]

[01010101]]

14、归一化,将矩阵规格化到0~1,即最小的变成0,最大的变成1,最小与最大之间的等比缩放。

Z=np.random.random((5,5))

Zmax,Zmin=Z.max(),Z.min()

Z=(Z-Zmin)/(Zmax-Zmin)

printZ

[[0.0.321732910.176078510.6270374

0.95000808]

[0.491534730.704656050.619300850.003032941.

]

[0.46805610.887427820.298996830.80704789

0.12300414]

[0.050942480.230658750.827767750.07873239

0.50644422]

[0.274170530.786792220.5178190.56491240.4716856

]]

15、矩阵点乘

z=np.dot(np.ones((5,3)),np.ones((3,2)))

printz

[[3.3.]

[3.3.]

[3.3.]

[3.3.]

[3.3.]]

16、矩阵相加,5*5矩阵+1*5的向量,相当于每一行都加上1*5矩阵

Z=np.zeros((5,5))

Z+=np.arange(5)

printZ

[[0.1.2.3.4.]

[0.1.2.3.4.]

[0.1.2.3.4.]

[0.1.2.3.4.]

[0.1.2.3.4.]]

17、linspace函数,在给定区间中生成均匀分布的给定个数。

函数原型linspace(start,stop,num=50,endpoint=True, retstep=False)

Z=np.linspace(0,10,11,endpoint=True,retstep=False)

printZ

[0.1.2.3.4.5.6.7.8.9.10.]

生成0~10之间均匀分布的11个数,包括0和1。

若endpoint=False,则10不包括在里面。

若retstep=False,会同时返回均匀区间中每两个数的间隔。

18、sort函数。

调用random模块中的random函数生成10个随机数,然后sort排序。

Z=np.random.random(10)

Z.sort()

printZ

[0.159787870.280504940.358659160.400478260.45141311

0.4828367

0.661335750.667757790.692785440.98095989]

19、allclose函数,判断两个array在误差范围内是否相等

函数原型allclose(a,b,rtol=1e-05,atol=1e-08),若absolute(a- b)<=(atol+rtol*absolute(b))则相等。

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

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

equal=np.allclose(A,B)

printequal

20、mean函数,求平均值

Z=np.random.random(30)

m=Z.mean()

printm

0.362299527973

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

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

equal=np.allclose(A,B)

printequal

False

Numpy拓展练习二

(1)Importthenumpypackageunderthenamenp

importnumpyasnp

(2)Printthenumpyversionandtheconfiguration

print(np.__version__)

np.show_config()

(3)Createanullvectorofsize10

Z=np.zeros(10)

print(Z)

#[0.0.0.0.0.0.0.0.0.0.]

(4)Howtofindthememorysizeofanyarray

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

print("%dbytes"%(Z.size*Z.itemsize))

#800bytes

(5)Howtogetthedocumentationofthenumpyaddfunction

np.info(np.add)

(6)Createanullvectorofsize10butthefifthvaluewhichis1

Z=np.zeros(10)

Z[4]=1

print(Z)

#[0.0.0.0.1.0.0.0.0.0.]

(7)Createavectorwithvaluesrangingfrom10to49

Z=np.arange(10,50)

print(Z)

#[10111213141516171819

#20212223242526272829

#30313233343536373839

#40414243444546474849]

(8)Reverseavector(firstelementbecomeslast)

Z=np.arange(10)

Z=Z[:

:

-1]

print(Z)

#[9876543210]

(9)Createa3x3matrixwithvaluesrangingfrom0to8

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

print(Z)

#[[012]

#[345]

#[678]]

(10)Findindicesofnon-zeroelementsfrom[1,2,0,0,4,0]

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

print(nz)

#(array([0,1,4],dtype=int64),)

(11)Createa3x3identitymatrix

Z=np.eye(3)

print(Z)

#[[1.0.0.]

#[0.1.0.]

#[0.0.1.]]

(12)Createa3x3x3arraywithrandomvalues

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

print(Z)

(13)Createa10x10arraywithrandomvaluesandfindtheminimumandmaximumvalues

Z=np.random.random((10,10))

Zmin,Zmax=Z.min(),Z.max()

print(Zmin,Zmax)

(14)Createarandomvectorofsize30andfindthemeanvalue

Z=np.random.random(30)

m=Z.mean()

print(m)

(15)Createa2darraywith1ontheborderand0inside

Z=np.ones((5,5))

Z[1:

-1,1:

-1]=0

print(Z)

#[[1.1.1.1.1.]

#[1.0.0.0.1.]

#[1.0.0.0.1.]

#[1.0.0.0.1.]

#[1.1.1.1.1.]]

(16)Howtoaddaborder(filledwith0’s)aroundanexistingarray?

Z=np.ones((3,3))

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

print(Z)

#[[0.0.0.0.0.]

#[0.1.1.1.0.]

#[0.1.1.1.0.]

#[0.1.1.1.0.]

#[0.0.0.0.0.]]

(17)Whatistheresultofthefollowingexpression?

print(0*np.nan)

#nan

print(np.nan==np.nan)

#False

print(np.inf>np.nan)

#False

print(np.nan-np.nan)

#nan

print(0.3==3*0.1)

#False

(18)Createa5x5matrixwithvalues1,2,3,4justbelowthediagonal

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

print(Z)

#[[00000]

#[10000]

#[02000]

#[00300]

#[00040]]

(19)Createa8x8matrixandfillitwithacheckerboardpattern

Z=np.zeros((8,8),dtype=int)

Z[1:

:

2,:

:

2]=1

Z[:

:

2,1:

:

2]=1

print(Z)

#[[01010101]

#[10101010]

#[01010101]

#[10101010]

#[01010101]

#[10101010]

#[01010101]

#[10101010]]

(20)Considera(6,7,8)shapearray,whatistheindex(x,y,z)ofthe100thelement?

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

#(1,5,4)

(21)Createacheckerboard8x8matrixusingthetilefunction

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

print(Z)

#[[01010101]

#[10101010]

#[01010101]

#[10101010]

#[01010101]

#[10101010]

#[01010101]

#[10101010]]

(22)Normalizea5x5randommatrix

Z=np.random.random((5,5))

Zmax,Zmin=Z.max(),Z.min()

Z=(Z-Zmin)/(Zmax-Zmin)

print(Z)

(23)Createacustomdtypethatdescribesacolorasfourunsignedbytes(RGBA)

color=np.dtype([("r",np.ubyte,1),

("g",np.ubyte,1),

("b",np.ubyte,1),

("a",np.ubyte,1)])

print(color)

#dtype([('r','u1'),('g','u1'),('b','u1'),('a','u1')])

(24)Multiplya5x3matrixbya3x2matrix(realmatrixproduct)

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

print(Z)

#[[3.3.]

#[3.3.]

#[3.3.]

#[3.3.]

#[3.3.]]

(25)Givena1Darray,negateallelementswhicharebetween3and8,inplace.

Z=np.arange(11)

Z[(Z>=3)&(Z<=8)]*=-1

print(Z)

#[012-3-4-5-6-7-8910]

(26)Whatistheoutputofthefollowingscript?

print(sum(range(5),-1))

#9

print(np.sum(range(5),-1))

#fromnumpyimport*

#print(sum(range(5),-1))

#10,parameteraxis=-1

(27)ConsideranintegervectorZ,whichoftheseexpressionsarelegal?

Z=np.array([-1,2,3])

print(Z**Z)

#[1427]

print(2<>2)

#[124]

print(Z<-Z)

#[FalseFalseFalse]

print(1j*Z)

#complexnumber

#[0.+1.j0.+2.j0.+3.j]

print(Z/1/1)

#[1.2.3.]

print((ZZ)

#array([False,False,False],dtype=bool)

(28)Whataretheresultofthefollowingexpressions?

print(np.array(0)/np.array(0))

#python2.70

#python3.5nan

print(np.array(0)//np.array(0))

#python2.70

#python3.50

print(np.array([np.nan]).astype(int).astype(float))

#python2.7[-2.14748365e+09]

#python3.5[-2.14748365e+09]

(29)Howtoroundawayfromzeroafloatarray?

Z=np.random.uniform(-10,10,10)

print(np.copysign(np.ceil(np.abs(Z)),Z))

(30)Howtofindcommonvaluesbetweentwoarrays?

Z1=np.random.randint(0,10,10)

Z2=np.random.randint(0,10,10)

print(np.intersect1d(Z1,Z2))

(31)Howtoignoreallnumpywarnings(notrecommended)?

#Suicidemodeon

defaults=np.seterr(all="ignore")

Z=np.ones

(1)/0

#Backtosanity

_=np.seterr(**defaults)

#Anequivalentway,withacontextmanager:

withnp.errstate(divide='ignore'):

Z=np.ones

(1)/0

(32)Isthefollowingexpressionstrue?

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

#False

#leftpart->nan

#rightpart->1j

(33)Howtogetthedatesofyesterday,todayandtomorrow?

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

today=np.datetime64('today','D')

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

(34)HowtogetallthedatescorrespondingtothemonthofJuly2016?

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

print(Z)

#['2016-07-01''2016-07-02''2016-07-03''2016-07-04''2016-07-05'

#'2016-07-06''2016-07-07''2016-07-08''2016-07-09''2016-07-10'

#'2016-07-11''2016-07-12''2016-07-13''201

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1