大家好,又到了NumPy进阶修炼专题。


NumPy大家应该不陌生了,看了太多的原理讲解之后,用刷题来学习是最有效的方法,本文将带来20个NumPy经典问题,附赠20段实用代码,拿走就用,建议打开Jupyter Notebook边敲边看!

01

数据查找


问:如何获得两个数组之间的相同元素输入
import numpy as np
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
arr1 = np.random.randint(10,6,6)
arr2 = np.random.randint(10,6,6)
答案
arr1 = np.random.randint(10,6,6)
arr2 = np.random.randint(10,6,6)
print("arr1: %s"%arr1)
print("arr2: %s"%arr2)
np.intersect1d(arr1,arr2)


02

数据修改


问:如何从一个数组中删除另一个数组存在的元素输入
arr1 = np.random.randint(10,6,6)
arr2 = np.random.randint(10,6,6)
答案:
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
print("arr1: %s"%arr1)
print("arr2: %s"%arr2)
np.setdiff1d(arr1,arr2)


03

数据修改


问:如何修改一个数组为只读模式输入:
arr1 = np.random.randint(1,10,10)
答案:
arr1 = np.random.randint(1,10,10)
arr1.flags.writeable = False


04

数据转换


问:如何将list转为numpy数组输入:
a = [1,2,3,4,5]
答案:
a = [1,2,3,4,5]
np.array(a)


05

数据转换


问:如何将pd.DataFrame转为numpy数组输入:
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
答案:
df.values


06

数据分析


问:如何使用numpy进行描述性统计分析输入:
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)
答案:
arr1 = np.random.randint(1,10,10)
arr2 = np.random.randint(1,10,10)

print("arr1的平均数为:%s" %np.mean(arr1))
print("arr1的中位数为:%s" %np.median(arr1))
print("arr1的方差为:%s" %np.var(arr1))
print("arr1的标准差为:%s" %np.std(arr1))
print("arr1,arr的相关性矩阵为:%s" %np.cov(arr1,arr2))
print("arr1,arr的协方差矩阵为:%s" %np.corrcoef(arr1,arr2))


07

数据抽样


问:如何使用numpy进行概率抽样
arr = np.array([1,2,3,4,5])
输入:
arr = np.array([1,2,3,4,5])
np.random.choice(arr,10,p = [0.1,0.1,0.1,0.1,0.6])
答案:


08

数据创建


问:如何为数据创建副本输入:
arr = np.array([1,2,3,4,5])
答案:
#对副本数据进行修改,不会影响到原始数据
arr = np.array([1,2,3,4,5])
arr1 = arr.copy()

09

数据切片


问:如何对数组进行切片输入:

arr = np.arange(10)
备注从索引2开始到索引8停止,间隔为2
答案:
arr = np.arange(10)
a = slice(2,8,2)
arr[a] #等价于arr[2:8:2]


10

字符串操作


问:如何使用NumPy操作字符串输入:

str1 = ['I love']
str2 = [' Python']
答案:
#拼接字符串
str1 = ['I love']
str2 = [' Python']
print(np.char.add(str1,str2))

#大写首字母
str3 = np.char.add(str1,str2)
print(np.char.title(str3))


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], [-11]))


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([[123], [2-11], [30-1]])
b = np.array([983])
备注:求解Ax=b
答案:
A = np.array([[123], [2-11], [30-1]])
b = np.array([983])
x = np.linalg.solve(A, b)
print(x)



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



©著作权归作者所有:来自51CTO博客作者mb5fe18e32e4691的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Python办公自动化|批量提取Excel数据
  2. 维度爆炸?Python实现数据压缩竟如此简单!
  3. 腾讯微博即将退出舞台,爬取近十年腾讯微博数据,发现转折点竟在这一
  4. 可视化工具不知道怎么选?深度评测5大Python数据可视化工具
  5. 老板让我从几百个Excel中查找数据,我用Python一分钟搞定!
  6. Pandas也能修改样式?快速给你的数据换个Style!
  7. 爬取6271家死亡公司数据,看十年创业公司消亡史
  8. 在 JavaScript 中优雅的提取循环内的数据 [每日前端夜话0x2D]
  9. 14个最好的 JavaScript 数据可视化库[每日前端夜话0x42]

随机推荐

  1. jquery 的 each , click , 中 $(this) 是
  2. Web App可以在不刷新页面的情况下最好地
  3. 用jquery改变样式:after
  4. jquery ajax 提交信息后等待返回的提示信
  5. jQuery:AJAX知识点及async同步异步的区别
  6. Ajax调用php脚本返回404错误
  7. jQuery 对Ajax的支持——从Ajax基本实现
  8. 如何将表单转换成json通过AJAX传递?
  9. 从JQuery文件输入中获取数据
  10. 模态的jQuery动态高度宽度