登录
首页大数据时代numpy学得还不错?来试试这20题(下)
numpy学得还不错?来试试这20题(下)
2020-08-27
收藏

作者:刘早起

来源:早起Python

大家好,这篇是接上篇《numpy学得还不错?来试试这20题(上)》,又到了numpy进阶修炼专题。numpy大家应该不陌生了,看了太多的原理讲解之后,用刷题来学习是最有效的方法,本文将将接下来的10个NumPy经典问题和实用代码附上,建议打开Jupyter Notebook边敲边看!

11数据修改

问:如何对数据向上/下取整

输入:

arr = np.random.uniform(0,10,10)

答案:

arr = np.random.uniform(0,10,10)
print(arr)
###向上取整
print(np.ceil(arr))
###向下取整
print(np.floor(arr) )

12格式修改

问:如何取消默认科学计数显示数据

答案:

np.set_printoptions(suppress=True)

13数据修改

问:如何使用NumPy对二维数组逆序

输入:

arr = np.random.randint(1,10,[3,3])

答案:

arr = np.random.randint(1,10,[3,3])
print(arr)
print('列逆序')
print(arr[:, -1::-1])
print('行逆序')
print(arr[-1::-1, :])

14数据查找

问:如何使用NumPy根据位置查找元素

输入:

arr1 = np.random.randint(1,10,5)
arr2 = np.random.randint(1,20,10)

备注:在arr2中根据arr1中元素位置查找

答案:

arr1 = np.random.randint(1,10,5)
arr2 = np.random.randint(1,20,10)
print(arr1)
print(arr2)
print(np.take(arr2,arr1))

15数据计算

问:如何使用numpy求余数

输入:

a = 10
b = 3

答案:

np.mod(a,b)

16数据计算

问:如何使用NumPy进行矩阵SVD分解

输入:

A = np.random.randint(1,10,[3,3])

答案:

np.linalg.svd(A)

17数据筛选

问:如何使用NumPy多条件筛选数据

输入:

arr = np.random.randint(1,20,10)

答案:

arr = np.random.randint(1,20,10)
print(arr[(arr>1)&(arr<7)&(arr%2==0)])

18数据修改

问:如何使用numpy对数组分类

备注:将大于等于7,或小于3的元素标记为1,其余为0

输入:

arr = np.random.randint(1,20,10)

答案:

arr = np.random.randint(1,20,10)
print(arr)
print(np.piecewise(arr, [arr < 3, arr >= 7], [-1, 1]))

19数据修改

问:如何使用NumPy压缩矩阵

备注:从数组的形状中删除单维度条目,即把shape中为1的维度去掉

输入:

arr = np.random.randint(1,10,[3,1])

答案:

arr = np.random.randint(1,10,[3,1])
print(arr)
print(np.squeeze(arr))

20数据计算

问:如何使用numpy求解线性方程组

输入:

A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])
b = np.array([9, 8, 3])

备注:求解Ax=b

答案:

A = np.array([[1, 2, 3], [2, -1, 1], [3, 0, -1]])
b = np.array([9, 8, 3])
x = np.linalg.solve(A, b)
print(x)

以上就是我总结的NumPy经典20题,你都会吗?并且每题我都只给出了一种解法,而事实上每题都有多种解法,所以你应该思考是否有更好的思路!

数据分析咨询请扫描二维码

客服在线
立即咨询