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)
np.info(np.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)
11.创建一个 3x3 的单位矩阵
(提示: np.eye)
Z = np.eye(3)print(Z)
12.创建一个 3x3x3的随机数组
(提示: np.random.random)
Z = np.random.random((10,10))Zmin, Zmax = Z.min(), Z.max()print(Zmin, Zmax)
13.创建一个 10x10 的随机数组并找到它的最大值和最小值
(提示: min, max)
Z = np.random.random((10,10))Zmin, Zmax = Z.min(), Z.max()print(Zmin, Zmax)
14.创建一个长度为30的随机向量并找到它的平均值
(提示: mean)
0*np.nannp.nan==np.nannp.inf>np.nannp.nan-np.nan0.3==3*0.1
15.创建一个二维数组,其中边界值为1,其余值为0
(提示: array[1:-1, 1:-1])
Z = np.diag(1+np.arange(4),k=-1)print(Z)
16.对于一个已经存在的数组,如何添加一个用0填充的边界?
(提示: np.pad)
Z = np.zeros((8,8),dtype=int)Z[1::2,::2] = 1Z[::2,1::2] = 1print(Z)
17.以下表达式运行的结果分别是什么?
(提示: NaN = not a number, inf = infinity
0*np.nannp.nan==np.nannp.inf>np.nannp.nan-np.nan0.3==3*0.1
18.创建一个 5x5的矩阵,并设置值1,2,3,4落在其对角线下方位置
(提示: np.diag)
print(np.unravel_index(100,(6,7,8)))
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)])
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)
print(sum(range(5),-1))
27.考虑一个整数向量Z,下列表达合法的是哪个?
Z = np.arange(5)Z ** Z # legal2 <> 2 # falseZ Z # false
28.下列表达式的结果分别是什么?
np.array(0) /np.array(0)np.array(0) //np.array(0)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)
defaults=np.seterr(all="ignore")Z=np.ones(1) /0# 恢复_=np.seterr(**defaults)
32.下面的表达式是正确的吗?
(提示: imaginary number)
np.sqrt(-1) ==np.emath.sqrt(-1) # False
33.如何得到昨天,今天,明天的日期?
(提示: np.datetime64, np