当前位置: 首页 > 编程日记 > 正文

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陷入史诗级加密黑客风暴?官方回应来了
点分享点点赞点在看

相关文章:

tomcat报 Context [] startup failed due toprevious errors

今天同事在实施项目中,遇到一个问题,就是项目布到tomcat服务器上了,却总是找不到访问路径.tomcat报 Context [] startup failed due toprevious errors 当时就觉的很郁闷,项目是本机测试完整打包的.按以前的项目实施也很少出现这样的问题.在网上搜索以下解决方案: ------解决方…

DataGrid中自带的分页功能的使用

作者&#xff1a;木子 http://blog.csdn.net/derny/1、把AllowPaging属性设置为true 并设置PageSize的大小 2、在html页面中设置datagrid的属性OnPageIndexChanged"DataGrid_Page" // //DataGrid_Page 为点击页数的时候激发的事件 3、在程序中加入代码如下&…

34补1-2_3 HA Cluster基础及heartbeat实现HA

HA Cluster基础及heartbeat实现HA配置环境node1&#xff1a;192.168.1.121CentOS6.7node2&#xff1a;192.168.1.122CentOS6.7node3&#xff1a;192.168.1.123CentOS6.7vip 192.168.1.80配置前准备# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 loc…

关于SSL配置的报告

作者&#xff1a;网际浪子专栏&#xff08;曾用名littlehb&#xff09; http://blog.csdn.net/littlehb/一&#xff0c;服务器上装有CA(Certificate Server) 1&#xff0c;服务器上安装CA Win2000中带有CA的安装程序。单击Start&#xff0c;Control Pannel Add/Remove Prog…

认知智能,AI的下一个十年 | AI Procon 2020

整理 | 屠敏 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 60 年间的「三起两落」 &#xff0c;人工智能的沉浮变迁。 在 1956 年的夏天&#xff0c;人工智能在美国达特茅斯大学召开的学术会议之上蹒跚学步&#xff0c;吸引无数研究学者对其智能化的探索以及未来美…

STL 队列queue

q.front() 返回队头元素 q.push(a) 将元素a入队 q.pop() 队头元素出队 q.empty() 如果队列为空 返回ture 否则返回false转载于:https://www.cnblogs.com/xujian9502/archive/2012/02/19/2358055.html

OpenCV——使用ROI进行图像切割

ROI&#xff08;region of interest&#xff09;——感兴趣区域。 1.用途 这个区域是图像分析所关注的重点。圈定这个区域&#xff0c;以便进行进一步的处理。而且&#xff0c;使用ROI指定 想读入的目标&#xff0c;可以减少处理时间&#xff0c;增加精度&#xff0c;给图像处理…

Asp.net动态生成html页面

作者&#xff1a;网际浪子专栏&#xff08;曾用名littlehb&#xff09; http://blog.csdn.net/littlehb/适用于&#xff1a;Microsoft ASP.NET 摘要:asp.net动态生成html页面,适用 简介 此功能适用于后台数据库功能不强的web站点&#xff0c;即大部分文本不是存放在数据库的…

View 5.1 重装上阵(4—基础架构篇)

从底层架构方面来看&#xff0c;VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术&#xff0c;大大降低了部署桌面虚拟化所带来的IOPS风暴&#xff0c;同时大大降低了对于存储的压力和成本&#xff0c;可谓桌面虚拟化领域的一大福音。 在以往的桌面虚拟化项目…

再见了,Python!!

结合我最近这些年的 Python 学习、开发经验&#xff0c;发现近90%的程序员在学 Python 时都会遇到下面这3个问题&#xff1a;1.想学Python&#xff0c;但不知从何学起&#xff0c;应用方向太多了也不知道该选择什么方向...2.基础入门看似简单&#xff0c;但是进阶实战就举步维艰…

alert在asp.net中如何使用??

改成这样&#xff1a;string str"<script languagejavascript>alert(省局数据不能进行修改&#xff01;);</script>";Page.RegisterStartupScript("dd",str); 提示成功后转到别的页面Response.Write("<script>window.alert(提示语…

.NET工程师必须掌握的知识点

以下内容是转载的 Microsoft SQL Server 数据库 一、创建和维护数据库 1、数据库 SQL Server 数据库的组成部分&#xff1f;&#xff08;参见联机丛书&#xff09;   如何保证数据库的完整性、安全性、并发性&#xff1f;   数据库设计创建步骤&#xff1f;&#xff08;参见…

@程序员:这些瓜没吃到,可以告别互联网了!

最近&#xff0c;程序员届有一个重大好消息&#xff0c;可能很多人还不知道&#xff0c;那就是&#xff1a;国内某些城市已经开始程序员人才补贴了&#xff01;对于人工智能公司的项目开发、人才引进、科技研发&#xff0c;最高按照国拨经费的30%给予配套支持&#xff0c;单个项…

日志分析工具splunt

实验环境 网关 classroom 172.25.8.254 workstation 172.25.8.9 server a-jeth0 172.25.8.10-外网 eth1 192.168.0.x内网 eth2 192.168.1.x备用 -------------------------------------------- 需求&#xff1a; 设计&#xff1a; 原理&#xff1a;日志的作用&#xff0c;1&a…

正则表达式语法规则收集

turnmissile 的 Blog http://blog.csdn.net/turnmissile/ Microsoft已经把正则表达式的规则收录在了msdn里面了&#xff0c;有兴趣的朋友可以自己去研究一下(ms-help://MS.MSDNQTR.2003OCT.1033/cpgenref/html/cpconRegularExpressionsLanguageElements.htm)&#xff0c;这里罗…

Python实现信息自动配对爬虫排版程序

作者 | 李秋键责编 | 晋兆雨头图 | CSDN付费下载自视觉中国在很多的公司项目中&#xff0c;常常有很多对office项目的比较机械化的操作&#xff0c;在这里就可以借助python实现对office的合理排版。而这里我们就将借助海尔公司的出货表爬取对应图片信息&#xff0c;并重新排版成…

关于2012年度土建工程专业中级专业技术资格考试有关问题的通知

关于2012年度土建工程专业中级专业技术资格考试有关问题的通知 现将2012年度土建工程专业初、中级专业技术资格考试、报名、培训工作有关事项通知如下&#xff1a; 一、考试组织 湖南省住房和城乡建设厅、省人力资源和社会保障厅联合成立领导小组&#xff0c;负责对考试工作进行…

Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

做出的C++选择以及背后的原因

要让出资人明白你做出的C选择以及背后的原因。也许出资人会有更容易操作、更快实现的好主意。3、为你提供的日期说明信心范围。很可能管理层不明白你的估算意味着什么&#xff0c;而且你也有可能不理解他们所要的东西。 2&#xff0e;变量的C使用范围每个变量的使用范围只在定义…

拖放 DataGrid 列--来自MSDN

发布日期&#xff1a; 09/19/2004| 更新日期&#xff1a; 09/19/2004Chris SanoMicrosoft Corporation 摘要&#xff1a;了解如何利用基本的 GDI 功能&#xff0c;从而通过 DataGrid 控件获得可视化效果。通过跨越托管边界进行调用&#xff0c;可以利用本机 GDI 功能来执行屏幕…

最近很火的最新一代国际视频标准 VVC 到底是什么?阿里专家为你揭秘

作者 | 叶琰&#xff0c;阿里巴巴达摩院XG实验室视频标准团队负责人责编 | 夕颜头图 | CSDN付费下载自视觉中国2020年7月1日晚上&#xff08;日内瓦时间&#xff09;&#xff0c;第十九次JVET会议在线上落下帷幕&#xff0c;新一代国际视频编码标准VVC第一版&#xff08;Versat…

nesC编程入门

1.接口 NesC程序主要由各式组件&#xff08;component&#xff09;构成&#xff0c;组件和组件之间通过特定的接口&#xff08;interface&#xff09;互相沟通。一个接口内声明了提供相关服务的方法&#xff08;C语言函数&#xff09;。例如数据读取接口&#xff08;Read&#…

用asp.net实现的把本文推荐给好友功能

作者&#xff1a; 飞鹰 www.ASPCool.com 时间:2001-11-25 17:39:07 ///<summary> ///<author>飞鹰ASPCool.com</author> ///<description>本文用asp.net实现把此文推荐给好友的功能。</desciption> ///<copyright>ASP酷技术资讯…

Access sql语句创建表及字段类型

创建一张空表&#xff1a; Sql"Create TABLE [表名]" 创建一张有字段的表&#xff1a; Sql"Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200)) 字段类…

“刚毕业1年,做Python能挣多少?”网友:吹的不多..

01现状揭秘&#xff1a;Python的火持续燃烧程序员&#xff1a;心态崩了&#xff01;2020年转眼已经大半&#xff0c;在近几个月的榜单中&#xff0c;Python已经连续走上卫冕的道路&#xff0c;并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势&#xff0c;而这一…

Java编程的逻辑 (39) - 剖析LinkedList

本系列文章经补充和完善&#xff0c;已修订整理成书《Java编程的逻辑》&#xff0c;由机械工业出版社华章分社出版&#xff0c;于2018年1月上市热销&#xff0c;读者好评如潮&#xff01;各大网店和书店有售&#xff0c;欢迎购买&#xff0c;京东自营链接&#xff1a;http://it…

运用.NET读写Windows注册编辑表

作者&#xff1a; 冉林仓 www.ASPCool.com 时间:2001-11-9 如果你曾经使用过RegOpenKeyEx、RegCreateKeyEx、RegCloseKey等Win32 API函数读写过注册编辑表&#xff0c;你肯定非常熟悉这些复杂的Registry函数。相反&#xff0c;在.NET框架中&#xff0c;Registry和RegistryK…

使用正则表达式抽取新闻/BBS网页发表时间

package org.apache.nutch.parse.html; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 分析时间戳 * * author xum * */ public class Publish…

为什么Python没有main函数?

作者 | 豌豆花下猫来源 | Python猫&#xff08;ID:python_cat&#xff09;众所周知&#xff0c;Python中没有所谓的main函数&#xff0c;但是网上经常有文章提到“ Python的main函数”和“建议编写main函数”。其实&#xff0c;可能他们是想模仿真正的main函数&#xff0c;但是…

HTTP访问服务的相关解释

一、访问网站的基本流程第一步&#xff1a;客户端用户在浏览器输入www.51cto.com网站&#xff0c;回车后&#xff0c;系统首先会查找系统本地的DNS缓存及hosts文件信息&#xff0c;确定是否存在www.51cto.com余名对应的IP解析记录&#xff0c;如果有就直接获取IP地址&#xff0…