NumPy学的还不错?来试试这20题
来源 | 早起Python(ID: zaoqi-python)
又到了NumPy进阶修炼专题。NumPy大家应该不陌生了,看了太多的原理讲解之后,用刷题来学习是最有效的方法,本文将带来20个NumPy经典问题,附赠20段实用代码,拿走就用,建议打开Jupyter Notebook边敲边看。
数据查找
问:如何获得两个数组之间的相同元素
输入:
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)
数据修改
问:如何从一个数组中删除另一个数组存在的元素
输入:
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)
数据修改
问:如何修改一个数组为只读模式
输入:
arr1 = np.random.randint(1,10,10)
答案:
arr1 = np.random.randint(1,10,10)
arr1.flags.writeable = False
数据转换
问:如何将list转为numpy数组
输入:
a = [1,2,3,4,5]
答案:
a = [1,2,3,4,5]
np.array(a)
数据转换
问:如何将pd.DataFrame转为numpy数组
输入:
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
答案:
df.values
数据分析
问:如何使用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))
数据抽样
问:如何使用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])
答案:
数据创建
问:如何为数据创建副本
输入:
arr = np.array([1,2,3,4,5])
答案:
#对副本数据进行修改,不会影响到原始数据
arr = np.array([1,2,3,4,5])
arr1 = arr.copy()
数据切片
问:如何对数组进行切片
输入:
arr = np.arange(10)
备注:从索引2开始到索引8停止,间隔为2
答案:
arr = np.arange(10)
a = slice(2,8,2)
arr[a] #等价于arr[2:8:2]
字符串操作
问:如何使用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))
数据修改
问:如何对数据向上/下取整
输入:
arr = np.random.uniform(0,10,10)
答案:
arr = np.random.uniform(0,10,10)
print(arr)
###向上取整
print(np.ceil(arr))
###向下取整
print(np.floor(arr) )
格式修改
问:如何取消默认科学计数显示数据
答案:
np.set_printoptions(suppress=True)
数据修改
问:如何使用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, :])
数据查找
问:如何使用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))
数据计算
问:如何使用numpy求余数
输入:
a = 10
b = 3
答案:
np.mod(a,b)
数据计算
问:如何使用NumPy进行矩阵SVD分解
输入:
A = np.random.randint(1,10,[3,3])
答案:
np.linalg.svd(A)
数据筛选
问:如何使用NumPy多条件筛选数据
输入:
arr = np.random.randint(1,20,10)
答案:
arr = np.random.randint(1,20,10)
print(arr[(arr>1)&(arr<7)&(arr%2==0)])
数据修改
问:如何使用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]))
数据修改
问:如何使用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))
数据计算
问:如何使用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题,你都会吗?并且每题我都只给出了一种解法,而事实上每题都有多种解法,所以你应该思考是否有更好的思路。
更多精彩推荐
☞机器学习算法易受攻击?阿里“安全基建”这样应对AI的不安全
☞代码恒久远,GitHub 永流传
☞腾讯员工每天在岗不足 8 小时被辞?背后原因可能不止你看到的这些
☞5G:新基建的压舱石,如何为新基建按下“加速键”?
☞中国人工智能市场破 50 亿!你还不了解 AI 云服务吗?
☞员工导致Twitter陷入史诗级加密黑客风暴?官方回应来了
点分享点点赞点在看
NumPy学的还不错?来试试这20题相关推荐
- 大龄程序猿的新出路:改行学中医!40岁程序员,重新高考学中医,如今混得还不错!...
大龄程序员的出路在哪里?送快递,送外卖,跑滴滴? 一位网友给出了一条新出路:改行学中医. 他说,一个40岁的程序员重新参加高考,学中医,如今已经学成归来,混得还不错. 程序员本身就有学习能力,改行中医 ...
- python 把numpy.ndarray转为图像_Python 让蔡徐坤在我的命令行里打篮球?打得还不错...
这是恋习Python推荐的第83篇好文 作者:顾个城管打天下 作者自称是一个经常逛 B 站的肥宅.最近 B 站上流行的视频素材除了"换脸",其次就要属"蔡xx打球&quo ...
- 三十岁了学python还可以吗-三十岁了还可以学编程吗?只要你想,只要你做,什么时候都不晚...
文章有点长,希望你可以看完.如果能给迷茫的朋友一点勇气,我不胜荣幸. 做一件事最好的时间是十年前,其次是现在. 如果想学编程却苦于不知道从何开始,也没有系统的学习路径,那就来加入我们一起学习 在这里不 ...
- 程序员在互联网公司年薪20万,考上公务员收入曝光,网友:还不错
赵凡是一个程序员,当初高中毕业之后因为没有考上心仪的大学,但是自己又不想复读,于是就去专门学习了计算机.之后跟着老师到了上海发展找工作,上海作为国际性的城市,虽然工作岗位多,但是要求也很高. **[P ...
- 量化投资之定投,无脑却收益还不错,记得周三来
目标: 本系列开始重点研究量化,逐步改善模型,改善策略,然后评估各个策略的优劣. 本文是第一篇,也是最容易最无脑投资的一篇,每周三定投,收益还不错. 内容: 如果工作太忙没法投资,闲钱无处放,不妨看看 ...
- 还不错的Table样式和form表单样式
作为一个后台开发人员而言,拥有一套属于自己的前台样式是比较重要的,这里分享一下自己感觉还不错的样式,以后遇到好的,还会陆续添加 上图: 带鼠标滑动效果的table样式看起来比较清爽 样式 <he ...
- 这个网盘搜索好像还不错
这个网盘搜索好像还不错 http://www.baiduyunpan.com/file/26474214.html 转载于:https://www.cnblogs.com/tujia/p/764964 ...
- html2张图片垂直居中,任意图片实现垂直居中的三种方法(兼容性还不错)
在网站开发过程中,可能会有希望图片垂直居中的情况,而且,需要垂直居中的图片的高度也不确定,这就会给页面的布局带来一定的挑战.我总结了一下,曾经使用过的几种方法来使图片垂直居中,除了第一种方法只限于标准 ...
- 把QQ群共享当做网盘用感觉还不错
作者:iamlaosong 网上看到有人把QQ群的共享文件区当网盘用,试了一下,感觉还不错. 以前我是用QQ邮箱中的文件中转站当网盘使用的,准确的来说是当U盘使用.QQ邮箱中的记事本则用来记录一些备忘 ...
最新文章
- android中获取某段程序的执行时间
- C语言求二叉树的垂直总和(附完整源码)
- Python selenium对js元素进行增删改查操作
- ANN:DNN结构演进History—LSTM_NN
- Redis的Linux单机版安装
- hadoop编译java,Hadoop源码编译(2.4.1)
- sign check fail: check Sign and Data Fail解决方案
- 11、Libgdx的音频
- 淮阴工学院计算机专业的考研率,淮阴工学院江淮学院(淮阴工学院考研录取率)...
- A10负载均衡设备基础配置
- HoloLens 2开发:Pcx 渲染点云单眼显示问题
- OpenCV Error: Unsupported format or combination of formats (Unsupported combination of input and out
- 打造最快的Hash表
- MySQL复制以及调优
- 下载速度15MB/s?网友实测度盘的这个新版本后惊了!
- 在windows 2008下面使用dynamipsgui
- Python实现类似局域网QQ群聊
- 常用颜色RGB、灰度值、取色值、透明度。
- java tld_Java Web自定义标签tld文件的简单使用
- 中秋节后如何有面子的带女票回家?
热门文章
- halcon算子翻译——set_framegrabber_callback
- Eclispse Che(2):启动Che服务,进入IDE界面
- openNebulafrontEnd ComputeNode 配置记录
- 在 Django 的 View 中利用 function decorator 可实现一定程度的代码重用
- 常用分类算法的优缺点
- 暑期集训3:几何基础 练习题H: POJ - 2456
- 2018-3-24论文(Grey Wolf Optimizer)note1----------No Free Lunch Theorem
- SQL中内连接、外连接、交叉连接
- 执子之手,与子偕老。你同意么?
- Spring Cloud 微服务实战笔记