Python之Numpy模块100道测试题整理精品文档.docx
- 文档编号:25475843
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:31
- 大小:41.32KB
Python之Numpy模块100道测试题整理精品文档.docx
《Python之Numpy模块100道测试题整理精品文档.docx》由会员分享,可在线阅读,更多相关《Python之Numpy模块100道测试题整理精品文档.docx(31页珍藏版)》请在冰豆网上搜索。
Python之Numpy模块100道测试题整理精品文档
Python之Numpy模块100道测试题
编辑整理:
尊敬的读者朋友们:
这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(Python之Numpy模块100道测试题)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为Python之Numpy模块100道测试题的全部内容。
1.导入numpy库并简写为np(★☆☆)
(提示:
import…as…)
import numpy as np
2。
打印numpy的版本和配置说明(★☆☆)
(提示:
np。
version,np.show_config)
print(np。
__version__)
np.show_config()
3。
创建一个长度为10的空向量(★☆☆)
(提示:
np.zeros)
Z = np.zeros(10)
print(Z)
4.如何找到任何一个数组的内存大小?
(★☆☆)
(提示:
size,itemsize)
Z = np。
zeros((10,10))
print(”%d bytes" % (Z.size * Z。
itemsize))
5。
如何从命令行得到numpy中add函数的说明文档?
(★☆☆)
(提示:
np。
info)
numpy。
info(numpy。
add)
add(x1,x2,/,out=None,*,where=True,casting=’same_kind',order=’K',dtype=None,subok=True[,signature,extobj])
6.创建一个长度为10并且除了第五个值为1的空向量(★☆☆)
(提示:
array[4])
Z = np.zeros(10)
Z[4] = 1
print(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] = 0
print(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)
0*np。
nan
np。
nan==np。
nan
np。
inf>np。
nan
np.nan—np。
nan
0。
3==3*0。
1
print(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.创建一个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] = 1
Z[:
:
2,1:
:
2] = 1
print(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 〈 Z) & (Z 〈= 8)] *= -1
print(Z)
26.下面脚本运行后的结果是什么?
(★☆☆)
(提示:
np.sum)
print(sum(range(5),-1))
fromnumpyimport*
print(sum(range(5),-1))
print(sum(range(5),-1))
from numpy import *
print(sum(range(5),—1))
27。
考虑一个整数向量Z,下列表达合法的是哪个?
(★☆☆)
Z**Z
2<
Z〈—Z1j*ZZ/1/1ZZ
Z = np。
arange(5)
Z ** Z # legal
array([ 1, 1, 4, 27,256])
Z = np.arange(5)
2 <〈 Z >〉 2 # false
array([0,1,2,4,8])
Z = np.arange(5)
Z <— Z # legal
array([False,False,False,False,False])
Z = np.arange(5)
1j*Z # legal
array([0.+0。
j,0.+1。
j,0.+2.j,0.+3。
j,0。
+4。
j])
Z = np.arange(5)
Z/1/1 # legal
array([0.,1。
,2.,3.,4.])
Z = np.arange(5)
Z ValueError: Thetruthvalueofanarraywithmorethanoneelementisambiguous。 Usea。 any()ora。 all() 28.下列表达式的结果分别是什么? (★☆☆) 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.如何从零位对浮点数组做舍入? (★☆☆) (提示: np.uniform,np。 copysign,np.ceil,np.abs) 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) # Suicide mode on defaults = np.seterr(all="ignore”) Z = np。 ones (1) / 0 # Back to sanity _ = np.seterr(**defaults) Anequivalentway,withacontextmanager: with np.errstate(divide='ignore’): Z = np。 ones (1) / 0 32。 下面的表达式是正确的吗? (★☆☆) (提示: imaginarynumber) np。 sqrt(—1)==np.emath.sqrt(-1) np。 sqrt(-1) == np。 emath。 sqrt(—1) False 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') print ("Yesterday is ” + str(yesterday)) print ("Today is ” + str(today)) print (”Tomorrow is "+ str(tomorrow)) 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)*1 B = np。 ones(3)*2 C = np.ones(3)*3 np。 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。 用五种不同的方法去提取一个随机数组的整数部分(★★☆) (提示: %,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.创建一个5x5的矩阵,其中每行的数值范围从0到4(★★☆) (提示: np。 arange) Z = np.zeros((5,5)) Z += np.arange(5) print (Z) 38。 通过考虑一个可生成10个整数的函数,来构建一个数组(★☆☆) (提示: np。 fromiter) def generate(): for x in range(10): yield x Z = np.fromiter(generate(),dtype=float,count=—1) print (Z) [0.1.2.3.4.5。 6。 7。 8。 9。 ] 39.创建一个长度为10的随机向量,其值域范围从0到1,但是不包括0和1(★★☆) (提示: np.linspace) Z = np.linspace(0,1,11,endpoint=False)[1: ] print (Z) 40.创建一个长度为10的随机向量,并将其排序(★★☆) (提示: sort) Z = np。 random。 random(10) Z。 sort() print (Z) 41.对于一个小数组,如何用比np.sum更快的方式对其求和? (★★☆) (提示: np.add。 reduce) Z = np.arange(10) np.add。 reduce(Z) 42.对于两个随机数组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 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 exactly equal) equal = np.array_equal(A,B) print(equal) False 43.创建一个只读数组(read—only)(★★☆) (提示: flags.writeable) # 使用如下过程实现 Z = np.zeros(10) Z.flags.writeable = False Z[0] = 1 44.将笛卡尔坐标下的一个10x2的矩阵转换为极坐标形式(★★☆) (hint: 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的向量,并将向量中最大值替换为1(★★☆) (提示: argmax) Z = np。 random.random(10) Z[Z。 argmax()] = 0 print (Z) 46。 创建一个结构化数组,并实现x和y坐标覆盖[0,1]x[0,1]区域(★★☆) (提示: 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(Cij=1/(xi—yj)) (提示: np.subtract.outer) X = np.arange(8) Y = X + 0.5 C = 1。 0 / np。 subtract.outer(X, Y) print(np。 linalg。 det(C)) 48.打印每个numpy标量类型的最小值和最大值? (★★☆) (提示: np.iinfo,np。 finfo,eps) 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) 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)的结构化数组(★★☆) (提示: 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((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 # Much faster with scipy import scipy # Thanks Gavin Heverly-Coulson (#issue 1) import scipy.spatial D = scipy.spatial。 distance。 cdist(Z,Z) print (D) 53。 如何将32位的浮点数(float)转换为对应的整数(integer)? (提示: 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, 5 6, , , 7, 8 , , 9,10,11 参考链接: https: //docs.scipy.org/doc/numpy—1.13.0/reference/generated/numpy。 genfromtxt.html 55.对于numpy数组,enumerate的等价操作是什么? (★★☆) (提示: np。 ndenumerate,np.ndindex) 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]) 56.生成一个通用的二维Gaussian-like数组(★★☆) (提示: 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.0 G = np.exp(—( (D—mu)**2 / ( 2。 0 * sigma**2 ) ) ) print (G) 57.对一个二维数组,如何在其内部随机放置p个元素? (★★☆) (提示: np。 put,np。 random.choice) n = 10 p = 3 Z = np.zero
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python Numpy 模块 100 测试 整理 精品 文档