28. 下面表达式的结果分别是什么? (★☆☆)
np.array(0) / np.array(0) nan np.array(0) // np.array(0) 0 np.array([np.nan]).astype(int).astype(float) -2.14748365e+09
29. 如何从零位开始舍入浮点数组? (★☆☆)
(提示: np.uniform, np.copysign, np.ceil, np.abs)
# Author: Charles R Harris 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) # 另一个等价的方式, 使用上下文管理器(context manager) with np.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) * 1 B = np.ones(3) * 1 C = np.ones(3) * 1 np.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 (★★☆)
(提示: 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)
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: Evgeni Burovski Z = np.arange(10) np.add.reduce(Z) # np.add.reduce 是numpy.add模块中的一个ufunc(universal function)函数,C语言实现