既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
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)
ZZ # false
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.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)
An equivalent way, with a context manager:
with np.errstate(divide=‘ignore’):
Z = np.ones(1) / 0
## 32. 下面的表达式是正确的吗? (★☆☆)
(提示: imaginary number)
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_eq