数据挖掘Python基础之NumPy基础(下)

Python numpy数据挖掘实验 数据挖掘实验 1. 导入模块numpy并以np作为别名,查看其版本 问题:导入模块numpy并以np作为别名,打印版本号 import numpy as np print(np.__version__) 1.16.2 2. 如何创建一个一维数组? 问题:创建一个含有从0到9数字的一维数组,并输出答案: import numpy as np arr=np.arange(10) print(arr... 阅读详情

前言

前一篇文章我们已经对Numpy有了一个大概的认识,了解了ndarray的几种创建方法,它的索引与切片相关内容以及一些换轴操作。今天我们就来更加深入的了解Numpy的相关操作。

通用函数

通用函数,又可以称为ufunc,是一种在ndarray数据中进行逐元素操作的函数,有很多ufunc是简单的逐元素转换,它们被称为一元通用函数,比如sqrt或exp函数,分别进行开方操作和以e为底的指数。

代码如下

import numpy as np

arr = np.arange(10)
print(arr)
print(np.sqrt(arr))
print(np.exp(arr))

结果如下

[0 1 2 3 4 5 6 7 8 9]

[0.         1.         1.41421356 1.73205081 2.         2.23606798
 2.44948974 2.64575131 2.82842712 3.        ]
 
[1.00000000e+00 2.71828183e+00 7.38905610e+00 2.00855369e+01
 5.45981500e+01 1.48413159e+02 4.03428793e+02 1.09663316e+03
 2.98095799e+03 8.10308393e+03]

二元通用函数会接受两个数组作为参数,并且返回一个数组作为结果。例如add,maximum。maximum计算两个

代码如下

import numpy as np

arr1 = np.random.randn(8)
arr2 = np.random.randn(8)
print(arr1)
print(arr2)
print(np.add(arr1, arr2))
print(np.maximum(arr1, arr2))

结果如下

[-0.87594347 -0.12273679 -0.14468199  0.79499301  0.48304519  1.42611994
  0.18478049 -0.77634734]
  
[-1.22720664 -0.5021539  -0.46341915 -1.09360896 -0.11567866  1.44262963
  1.3676035   0.87728414]
  
[-2.10315011 -0.62489069 -0.60810113 -0.29861595  0.36736653  2.86874957
  1.55238399  0.1009368 ]
  
[-0.87594347 -0.12273679 -0.14468199  0.79499301  0.48304519  1.44262963
  1.3676035   0.87728414]

常用的通用函数如下

一元通用函数
函数名描述
abs计算绝对值
aqrt计算平方根(与arr**0.5相等)
square计算平方(与arr**2相等)
二元通用函数
函数名描述
add相加
subtract在第二个数组中,将第一个数据包含的元素去除
multiply将数组元素相乘
divide,floor_divide除或整除
power将第二个数组的值作为第一个数组的幂次方
maximum, fmax计算最大值,fmax忽略NaN
minimum,fmin计算最小值,fmin忽略NaN
mod求模

面向数组编程

使用NumPy数组可以使你利用简单的数组表达式完成多种数据操作任务,而无需写些大量循环。这种利用数组表达式代替显示循环的方法称为向量化。

在NumPy中np.where就是三元表达式 x if condition else y的向量化版本。where在数据分析中的一个典型用法就是根据一个数组来生成一个新的数组。比如说你想将一个数组中的所有正值替换为2,所有负值替换为-2,用where实现就会非常简单,例子如下。

import numpy as np

arr = np.random.randn(4, 4)
arr1 = np.where(arr > 0, 2, -2)
print(arr)
print(arr1)

结果如下

[[-0.96494491  0.07379061 -1.27861559  1.00250552]
 [ 1.92868117 -0.71947891 -0.46209623 -0.25288092]
 [ 0.02809471  0.0156134  -0.41930177  0.4971246 ]
 [ 2.34854456  0.53715659  1.29290707 -1.5782504 ]]
 
[[-2  2 -2  2]
 [ 2 -2 -2 -2]
 [ 2  2 -2  2]
 [ 2  2  2 -2]]

数学与统计方法

许多关于计算整个数组统计值或者关于轴向数据的数学函数,可以作为数组类型的方法被调用,也可以调用顶层的NumPy函数。例子如下,mean是求平均值的函数。

代码如下

import numpy as np

arr = np.random.randn(5, 4)
print(arr)
print(arr.mean())
print(np.mean(arr))

结果如下

[[ 1.24215748  0.29118319 -0.15095341 -1.18315436]
 [ 0.34114254  0.67807088 -0.35850545 -0.0283722 ]
 [ 0.49374135  2.20303723  1.16090384  0.48882664]
 [ 0.7933995  -0.87707374  1.16431334 -0.9578789 ]
 [-0.96946034  0.80809035  1.2987827  -0.18680409]]
 
0.3125723270734698

0.3125723270734698

像mean、sum等函数可接收一个可选参数axis,这个参数可以用于计算定轴向上的统计值,形成一个下降一维度的数组,例如arr.mean(1)表示计算每一列的平均值,arr.sum(0)表示计算每一行的和。

代码如下

import numpy as np

arr = np.random.randn(5, 4)
print(arr)
print(arr.mean(1))
print(arr.sum(0))

结果如下

[[ 0.73681373 -0.47219867 -1.79257559  0.61201661]
 [-0.36828573 -0.94568274  0.19655693 -0.51870822]
 [-2.28839471  0.1913941   0.45310426  0.72263832]
 [ 0.78532131  0.86428249 -0.7225563  -0.6953199 ]
 [ 0.71222315  0.2859414   1.89264378 -0.60046051]]
 
[-0.22898598 -0.40902994 -0.23031451  0.0579319   0.57258696]

[-0.42232225 -0.07626342  0.02717308 -0.47983371]
基础数组统计方法
方法描述
sum沿着轴向计算所有元素累计和,0长度数组累计和为0
mean数学平均,0长度的数组平均值为NaN
std,var标准差和方差
min, max最小值和最大值
argmin, argmax最小值和最大值的位置
cumsum从0开始元素累计和
cumprod从1开始累积积

前面介绍过,布尔值会被强制为1(True)和0(False),因此sum通常可以用于计算布尔数组中True的个数。

代码如下

import numpy as np

arr = np.random.randn(5, 4)
print(arr)
print((arr > 0).sum())

结果如下

[[ 6.71705665e-02  1.61629530e-02  1.76841029e+00  4.23138695e-01]
 [ 1.12480214e-03 -4.01747051e-01  7.13198516e-01  2.19474387e+00]
 [ 1.72505405e+00 -7.08562407e-01  4.29636061e-01  1.03900746e-01]
 [-5.64386934e-01  1.94245960e+00 -3.59287169e-01 -1.57861659e+00]
 [-2.87704451e-01 -5.07660259e-01  5.56993656e-01  1.28515104e+00]]
 
13
唯一值与其他集合逻辑

Numpy包含了一些针对一维ndarray的基础集合操作,常用的一个方法是np.unique,返回数组中唯一值排序后形成的数组。

代码如下

import numpy as np

names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
print(np.unique(names))

结果如下

['Bob' 'Joe' 'Will']

数组的集合操作

方法描述
unique(x)计算x的唯一值,并排序
intersect1d(x, y)计算x和y的交集并排序
union1d(x, y)计算x和y的并集并排序
in1d(x, y)计算x是否包含y,返回一个布尔值
setdiff1d(x,y)计算差集,在x中但不在y中的x的元素
setxor1d(x,y)计算异或,在x或y中,但不属于x,y交集的元素

线性代数

线性代数,比如矩阵乘法、分解、行列式等方阵是所有数组类库的重要组成部分。

方法描述
diag将一个方阵的对角元素作为一维数组返回,或者将一维数组换成一个方阵
dot矩阵点乘
trace计算对角元素和
det计算矩阵行列式
eig计算方阵的特征值和特征向量
inv计算方阵的逆矩阵
svd奇异值分解
lstsq计算Ax = b的最小二乘解

最后

今天我们了解了NumPy的通用函数、面向数组的编程和一些线性代数的相关内容。更多的精彩文章可以关注公众号QStack。

Python数据挖掘与机器学习-03 初识Numpy 官方文档,请访问:NumPy 中文 如果您还没有安装python,请访问:Download Python | Python.org Numpy是什么 Numpy是用python进行科学计算的基础软件包。且Numpy提供了真正的数组功能(python并没有提供数组功能),以及对数据快速处理的函数。Numpy还是很多更高级的拓展库的依赖库,例如:Scipy, Matplotlib, Pandas等。此外,值得一提的是:Numpy内置函数处理数据的速度是C语言级别的,因此编写程序时,应尽量使用内置函数... 阅读详情

相关推荐

Python数据挖掘基础

文章目录库的安装一、jupyter notebook使用二、Matplotlib1.介绍2.三层结构3.折线图4.多坐标系5.数学函数6.散点图 scatter7.柱状图 bar8.直方图 histogram9.饼图 pie10.总结三、Numpy1.介绍2.ndarray3.优势4.属性5.使用一.基本操作1.生成数组2.数组的索引、切片3.形状修改4.类型修改5.数组去重二.ndarray运算1.逻辑运算2.统计运算3.数组间运算4.矩阵运算5.合并、分割6.IO操作与数据处理 库的安装 matpl

m0_56969616的博客 1025

Python数据挖掘之 Numpy

NumPy(Numerical Python)是一个用于科学计算的基础性库,主要用于高性能的多维数组和矩阵操作,以及丰富的数学函数支持。它是许多数据分析、机器学习和科学计算项目的核心组件。主要特点:多维数组对象(ndarray):提供高效的多维数组结构,支持元素的快速存取和操作。广播(Broadcasting):实现不同形状数组的运算规则,简化向量化操作。丰富的数学函数:包含线性代数、傅里叶变换、随机数生成、统计等操作的函数。

jerrykorea的博客 1483

并查集算法(UNION-FIND)详细解析

主要内容 并查集是一种树形的数据结构,通过这种数据结构能够有效处理不相交集合间的合并(union)及查询(find)问题。比如动态连通性问题。 这种数据结构主要涉及两个操作: Find:查询元素属于哪一个子集。此操作还可以用来确定两个元素是否属于同一子集。 Union:将两个子集合并成到一个集合中。 1. 动态连通性问题(dynamic connectivity) 动态连通性的应用很广泛: 比如网络诊断:网络中的两台计算机是否连通,社交网络中的两个人是否存在交集,芯片中的电路元件连通性等等。场景.

愿君出走半生,归来时仍是少年 812

深入了解Python数据挖掘库NumPy

1.背景介绍 1. 背景介绍 Python数据挖掘库NumPy是一个强大的数值计算库,它为Python提供了大量的数学和科学计算功能。NumPy的核心是一个用于存储和操作多维数组的数据结构,这些数组可以包含整数、浮点数、复数等不同类型的数据。NumPy还提供了一系列的数学函数和操作符,用于对数组进行各种运算和处理。 NumPy库的设计思想是基于C语言的数组库,因此它具有高效的性能和低级别的控...

AI天才研究院 1056

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy、Pandas和Matplotlib三个包。目录: 一.Python常用扩展包 二.Numpy科学计算包 三.Pandas数据分析包 四.Matplotlib绘图包 希望这篇文章对你有所帮助,尤其是刚刚接触数据挖掘以及大数据的同学,这些基础知识真的非常重要。如果文章中存在不足或错误的地方,还请海涵~

杨秀璋的专栏 3万+

opencode完整使用指南:从安装配置到Agent式编程实战

AI编程工具正从辅助补全向智能体协作演进。编程智能体不仅理解项目全局,还能自主执行原子级重构、测试验证等工程任务,显著提升研发效能。以opencode为代表的开源终端AI编程工具,凭本地优先和灵活模型接入成为技术团队新宠。本文围绕opencode的完整使用链路展开,从Node.js环境准备、npm全局安装,到解决Windows环境变量配置问题,再到接入OpenAI、Anthropic或多模型管理平台,梳理一套标准化接入方案。同时演示VSCode插件调用、LSP语义分析及Playwright驱动的浏览器自动化

weixin_28837817的博客 319

三、Python数据挖掘(Numpy库)

三、Python数据挖掘(Numpy库) 目录:三、Python数据挖掘(Numpy库)一、Numpy 简介二、认识N维数组 ndarray 属性1.ndarray 属性数组名 = np.array(N维数组)数组名 = np.array(N维数组, dtype=np.?)2.ndarray 的形状 shape3.ndarray 的类型 dtype三、基本操作1.生成数组的方法数组名 = np.zeros(shape=?, dtype=?)数组名 = np.ones(shape, dtype=?)新数组 =

~宪宪的博客 3128

2026年(新服务器默认密码)最新各大厂商默认凭证大全

本文整理了国内外主流服务器厂商的默认管理接口凭证信息,包括Dell、HPE、浪潮、华为等品牌的管理接口类型、默认用户名/密码和IP地址。特别强调国产服务器在信创环境下的安全风险,指出国内厂商部分型号仍保留固定默认密码(如浪潮admin/admin),而国际厂商多采用随机密码标签。文章提供了新机初始化安全流程建议:查找机箱标签、立即修改默认密码、配置网络隔离、更新固件等。最后提醒运维人员,服务器安全应从首次上电开始重视,管理接口暴露是重大风险点,必须严格执行安全规范。

你好,旧时光! 1716

基础python数据挖掘笔记数据分析(基础matplotlib,numpy,pandas的使用)

x:x要显示的刻度# y:y要显示的刻度# 温度变化折线图# 1、准备数据# 2、创建画布# 3、绘制图像# 修改x y刻度x_label = ["11分{}秒".format(i) for i in x]# 4、显示图像plt.show()Numpy (Numerical Python) 是一个开源的 Python 科学计算库,用于快速处理任意维度的数组。Numpy 支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy 比直接使用 Python 要简洁的多。

2302_80183131的博客 2344

Linux ARM平台开发系列讲解(GPIO子系统) 2.3.2 GPIO子系统常用函数解析

1. 概述 该章节会记录一年常用的GPIO子系统常用函数,会更具情况不断更新 static inline int gpio_get_value(unsigned int gpio) 功能 :用于获取某个GPIO引脚上的值 gpio : gpio引脚号 返回值:非负值,得到的 GPIO 值;负值,获取失败。 static inline void gpio_set_value(unsigned int gpio, int value) static inline int gpio_cansleep(unsi

DSMGUOGUO的博客 670

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

Python数据挖掘基础教程:Pandas、Matplotlib、NumPy等

Python数据挖掘基础教程:Pandas、Matplotlib、NumPy等 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库提供了一份关于Python数据挖掘的基础教程资源文件,涵盖了Pandas、Matplotlib、NumPy等常用库的使用。这份教程是根据B站上的黑马教程,并参考了优快云博客上的相关内容整理而成的Markdown笔记。 资源内容 Panda...

gitblog_09803的博客 659

【华为OD机试真题】282、求满足条件的最长子串的长度 | 机试真题+思路参考+代码分析 (C++、Java、Py、C语言、JS)

题目描述 >给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: >  1、只包含1个字母(a~ z,A~Z), 其余必须是数字; 2、字母可以在子 串中的任意位置; >  如果找不到满足要求的子串,如全是字母或全是数字,则返回-1

KJ.JK 1万+

Python 数据挖掘 | 第2章 使用 Numpy 操作数据

第2章 使用 Numpy 操作数据

多氯环己烷的博客 628

《YOLOv8:从入门到实战》专栏介绍 & 专栏目录

本专栏涵盖了丰富的YOLOv8算法从入门到实战系列教程,专为学习YOLOv8的同学而设计,堪称全网最详细的教程!🌈🌈🌈

小哥谈 6491

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3476

Python 数据挖掘(一) 模块安装部署 numpy等

下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 模块安装的顺序与方式建议如下:(出错概率比较小)同时安装 1、numpy、mkl(下载安装) 包的名字numpy-1.12.0b+mkl-cp35-cp35m-win_amd64.whl 2、pandas(网络安装)直接只用pip安装 3、matplotlib(网络安装) 4、scipy(下

是个好男人的博客 2122

FPGA打砖块游戏设计(有上板照片)VHDL

这是一款经典打砖块游戏,我们的努力让它更精致更好玩,我们将它取名为打砖块游戏(Flyball),以下是该系统的一些基本功能: 画面简约而经典,色彩绚丽而活泼,动画流畅 玩家顺序挑战3个不同难度的级别,趣味十足 计分功能,卡通字母数字 4条生命值,由生命条显示 游戏结束画面,缓缓浮起与缤纷刷色的特效 四键操作,可复位,可暂停,高灵敏 96块砖拼出可爱的“囧”字,方便更改 碰挡板非镜面反射 初始启动,随机的发射速度。

QQ_778132974的博客 1662

Python数据挖掘 - Numpy基础篇

Numerical Python,是一个开源的科学计算库,用于快速处理任意维度的数组,Numpy支持常见矩阵操作,对于数值计算,Numpy的计算比直接的Python计算更加简洁 ndarray是Numpy处理多维数组的对象,ndarray是灵活、快速的大数据容器(n-任意,d-dimension维度,array-数组)

m0_61286600的博客 322

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

数据挖掘——numpy基础

前言:python数据挖掘numpy的基础知识,参考网上资料和博客进行简单总结,主要是为了方便自己写代码的时候查看,发现有用的方法,随时补充,欢迎指正 数据挖掘专栏 数据挖掘——python基础 数据挖掘——numpy基础 数据挖掘——pandas基础 数据挖掘——pandas+matplotlib+seaborn数据可视化 numpy基础一、认识numpy二、numpy数组对象(ndarr...

Tao_RY的博客 775

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python数据挖掘02——Numpy

Numpy支持大量维度数组与矩阵的运算,提供大量的数学函数库。 Ndarray: ndarray是一个存放多个相同元素类型的多维数组,且每个元素都有相同的大小区域,它们之间是连续存储的。 1、ndarray.array(): 创建一个ndarray数组。 a = np.array([[1,2,3],[4,5,6],[7,8,9]]) 2、ndarray.ndmin: 维度,...

m0_38102468的博客 366

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python数据挖掘课程 六.Numpy、Pandas和Matplotlib包基础知识

前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy、Pandas和Matplotlib三个包。目录:         一.Python常用扩展包         二.Numpy科学计算包         三.Pandas数据分析包         四.Matplotlib绘图包      

xfyangle的博客 2425

数据挖掘Python基础之NumPy基础(上)

前言 时隔两个月,我又回来了,期间发生了很多很多的事情,也曾对自己产生了怀疑,对自己的坚持产生了怀疑。不过在颓废之后总是奋进,而生活也要继续,只能以“雄关漫道真如铁,而今迈步从头越”来自勉了。正好回家居家隔离,我要立一个flag日更。。。 之前我们已经学习了Python的一些语法基础,包括Pyhton的基础数据结构,函数与文件读写以及Pyhton面向对象的内容。接下来我们将面向数据挖掘学习一些常用的包,其中NumPy是最为重要的数值计算的 基础包。 ndarray ndarray是一种高效多维数组,提供了

QStack的博客 256

【4天快速入门Python数据挖掘之第2天】Numpy——高效的运算工具

Numpy是一个开源的Python科学计算库,用于快速处理任意维度的数组Numpy支持常见的数组和矩阵操作,对于同样的数值计算任务,使用Numpy比直接使用Pyhon要简洁得多Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器Numpy提供了一个N维数组类型 ndarray (N-dimensional array),它描述了相同类型的 “items” 的集合▷ 用ndarray。......

一以贯之的努力 不得懈怠的人生 1385
上一篇: 数据挖掘Python基础之NumPy基础(上)
下一篇: 实习面试总结
QStack
博客等级 码龄6年 30粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值