[数据分析大全]基于Python的数据分析大全——Numpy基础

这篇具有很好参考价值的文章主要介绍了[数据分析大全]基于Python的数据分析大全——Numpy基础。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


NumPy 的全称为 Numeric Python,它是 Python 的第三方扩展包,主要用来计算、处理一维或多维数组。

一、前言

  步入8月了,7月时因为项目所需,自学了深度学习相关的内容,现在已经把项目所需要的神经网络框架搭建起来了,输入输出也都归一化了,模拟误差也加上了,图像的参数提取和数据拟合也都做完了。开个新坑——
  本系列(《基于Python的数据分析大全》)是拜读了DataCamp撰写的 《Learn Python for Data Science Interactively》 (我个人把它译为《交互式学习 Python 数据科学》)有感而发,结合个人的理解编写的数据分析经验总结,旨在作为一本字典和速查手册,解决在数据分析时可能遇到的问题的实现思路和解决方法
  本文介绍的是 Numpy基础知识,全文皆用Python实现。所用代码上机调试都能运行,如果发现有问题请私信我并附上报错信息。


二、Numpy

  NumpyPython 数据科学计算和数据分析相关工作的核心库,提供了高性能的多维数组对象及处理数组的工具。
[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  我们可以使用以下语句导入 Numpy 库

import numpy as np

Numpy数组

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘


二、创建数组

>>> a = np.array([1,2,3])
>>> b = np.array([(1.5,2,3), (4,5,6)], dtype = float)
>>> c = np.array([[(1.5,2,3), (4,5,6)], [(3,2,1), (4,5,6)]],
dtype = float)

初始化占位符

  以下介绍初始化占位符,主要包括:创建值为0数组、创建值为1数组、创建均匀间隔的数组(步进值)、创建均匀间隔的数组(样本数)、创建常数数组、创建2x2单位矩阵、创建随机值的数组和创建空数组的相关代码实现。

>>> np.zeros((3,4)) # 创建值为0数组
>>> np.ones((2,3,4),dtype=np.int16) # 创建值为1数组
>>> d = np.arange(10,25,5) # 创建均匀间隔的数组(步进值)

>>> np.linspace(0,2,9) # 创建均匀间隔的数组(样本数)

>>> e = np.full((2,2),7) # 创建常数数组 
>>> f = np.eye(2) # 创建2x2单位矩阵
>>> np.random.random((2,2)) # 创建随机值的数组
>>> np.empty((3,2)) # 创建空数组

三、输入、输出

3.1 保存与载入文本文件

>>> np.loadtxt("myfile.txt")
>>> np.genfromtxt("my_file.csv", delimiter=',')
>>> np.savetxt("myarray.txt", a, delimiter=" ")

3.2 保存与载入磁盘上的文件

>>> np.save('my_array', a)
>>> np.savez('array.npz', a, b)
>>> np.load('my_array.npy')

四、数据类型

  以下介绍数据类型,包括:带符号的64位整数、标准双精度浮点数、显示为128位浮点数的复数、布尔值:True值和False值、Python对象、固定长度字符串、固定长度Unicode

>>> np.int64 # 带符号的64位整数
>>> np.float32 # 标准双精度浮点数
>>> np.complex #显示为128位浮点数的复数
>>> np.bool # 布尔值:True值和False值
>>> np.object # Python对象
>>> np.string_ # 固定长度字符串
>>> np.unicode_ # 固定长度Unicode

五、数组信息

  以下介绍数组信息的查看方法代码实现,包括:数组形状、几行几列、数组长度、几维数组、数组有多少元素、数据类型、数据类型的名字、数据类型转换

>>> a.shape # 数组形状,几行几列
>>> len(a) # 数组长度
>>> b.ndim # 几维数组
>>> e.size # 数组有多少元素
>>> b.dtype # 数据类型
>>> b.dtype.name # 数据类型的名字
>>> b.astype(int) # 数据类型转换

六、调用帮助

>>> np.info(np.ndarray.dtype)

七、数组计算

7.1 算数运算

  以下介绍算数运算相关操作,主要包括:减法、减法另解、加法、加法、除法、除法、乘法、乘法另解、幂、平方根、正弦、余弦、自然对数、点积

# 减法
>>> g = a - b
array([[-0.5, 0. , 0. ],[-3. , -3. , -3. ]])

# 减法
>>> np.subtract(a,b)

# 加法
>>> b + a
array([[ 2.5, 4. , 6. ],[ 5. , 7. , 9. ]])
>>> np.add(b,a) # 加法

# 除法
>>> a / b
array([[ 0.66666667, 1. , 1. ],[ 0.25 , 0.4 , 0.5 ]])
>>> np.divide(a,b) # 除法

# 乘法
>>> a * b
array([[ 1.5, 4. , 9. ],[ 4. , 10. , 18. ]])
>>> np.multiply(a,b) # 乘法

# 幂
>>> np.exp(b)

# 平方根
>>> np.sqrt(b)

# 正弦
>>> np.sin(a)

# 余弦
>>> np.cos(b)

# 自然对数
>>> np.log(a)

# 点积
e.dot(f)
array([[ 7., 7.],[ 7., 7.]])

7.2 比较

  以下介绍比较的相关代码实现,主要包括:对比值、对比值另解、对比数组

# 对比值
>>> a == b
array([[False, True, True],[False, False, False]], dtype=bool)

# 对比值
>>> a < 2
array([True, False, False], dtype=bool)

# 对比数组
>>> np.array_equal(a, b)

7.3 聚集函数

  以下介绍聚集函数的相关代码实现,主要包括:数组汇总、数组最小值、数组最大值(按行操作)、数组元素的累加值、平均数、中位数、相关系数、标准差

>>> a.sum() # 数组汇总
>>> a.min() # 数组最小值
>>> b.max(axis=0) # 数组最大值,按行
>>> b.cumsum(axis=1) # 数组元素的累加值
>>> a.mean() # 平均数
>>> b.median() # 中位数
>>> a.corrcoef() # 相关系数
>>> np.std(b) # 标准差

八、数组复制

  以下介绍数组复制的相关代码实现,主要包括:使用同一数据创建数组视图、创建数组的副本、创建数组的深度拷贝

>>> h = a.view() # 使用同一数据创建数组视图
>>> np.copy(a) # 创建数组的副本
>>> h = a.copy() # 创建数组的深度拷贝

九、数组排序

  以下介绍数组排序的相关操作,主要包括:数组排序、以轴为依据对数组排序

>>> a.sort() # 数组排序
>>> c.sort(axis=0) # 以轴为依据对数组排序

十、子集、切片、索引相关实现

10.1 子集

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择索引2对应的值:

>>> a[2]
3

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择行1列2对应的值(等同于b[1][2]):

>>> b[1,2]
>6.0

10.2 切片

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择索引为0与1对应的值:

>>> a[0:2]
array([1, 2])

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择第1列中第0行、第1行的值:

>>> b[0:2,1]
array([ 2., 5.])

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择第0行的所有值(等同于b[0:1,:1]:

>>> b[:1]
array([[1.5, 2., 3.]])

  等同于 [1,:,:]:

>>> c[1,...]
array([[[ 3., 2., 1.],[ 4., 5., 6.]]])

  反转数组a:

>>> a[ : :-1]
array([3, 2, 1])

10.3 条件索引

[数据分析大全]基于Python的数据分析大全——Numpy基础,数据分析,python,数据分析,numpy,数据挖掘
  选择数组a中所有小于2的值:

>>> a[a<2]
array([1])

10.4 花式索引

  选择(1,0),(0,1),(1,2) 和(0,0)所对应的值:

>>> b[[1, 0, 1, 0],[0, 1, 2, 0]]
array([ 4. , 2. , 6. , 1.5])

  选择矩阵的行列子集:

>>> b[[1, 0, 1, 0]][:,[0,1,2,0]]
array([[4.,5.,6.,4.],[1.5,2.,3.,1.5],[4.,5.,6.,4.] ,[1.5,2.,3.1.5]])

十一、数组操作

11.1 转置数组

>>> i = np.transpose(b) # 转置数组
>>> i.T # 转置数组

11.2 改变数组形状

  以下介绍改变数组形状的相关代码操作,主要包括:数组排序、以轴为依据对数组排序

>>> b.ravel() # 拉平数组
>>> g.reshape(3,-2) # 改变数组形状,但不改变数据

11.3 添加或删除值

  以下介绍添加或删除值的相关代码操作,主要包括:返回形状为(2,6)的新数组、追加数据、插入数据、删除数据

>>> h.resize((2,6)) # 返回形状为(2,6)的新数组
>>> np.append(h,g) # 追加数据
>>> np.insert(a, 1, 5) # 插入数据
>>> np.delete(a,[1]) # 删除数据

11.4 合并数组

  以下介绍合并数组的相关代码实现,主要包括:拼接数组、纵向以行的维度堆叠数组、纵向以行的维度堆叠数组、横向以列的维度堆叠数组、以列的维度创建堆叠数组

# 拼接数组
>>> np.concatenate((a,d),axis=0)
array([ 1, 2, 3, 10, 15, 20])

# 纵向以行的维度堆叠数组
>>> np.vstack((a,b))
array([[ 1. , 2. , 3. ],[ 1.5, 2. , 3. ],[ 4. , 5. , 6. ]])

# 纵向以行的维度堆叠数组
>>> np.r_[e,f]

# 横向以列的维度堆叠数组
>>> np.hstack((e,f))
array([[ 7., 7., 1., 0.],[ 7., 7., 0., 1.]])

# 以列的维度创建堆叠数组
>>> np.column_stack((a,d))
array([[ 1, 10],[ 2, 15],[ 3, 20]])

# 以列的维度创建堆叠数组
>>> np.c_[a,d]

11.5 分割数组

  以下介绍分割数组的相关代码实现举例,主要包括:纵向分割数组为3等份横向分割数组为2等份文章来源地址https://www.toymoban.com/news/detail-627794.html

# 纵向分割数组为3等份
>>> np.hsplit(a,3)
[array([1]),array([2]),array([3])]

# 横向分割数组为2等份
>>> np.vsplit(c,2)
[array([[[ 1.5, 2. , 1. ],[ 4. , 5. , 6. ]]]),
array([[[ 3., 2., 3.],[ 4., 5., 6.]]])]

到了这里,关于[数据分析大全]基于Python的数据分析大全——Numpy基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Python的前程无忧、51job、智联招聘等招聘网站数据获取及数据分析可视化大全【代码+演示】

    职位标题 薪资 地区 工作年限要求 学历要求 发布时间 keyword pageNum jobRank 公司名称 公司类型 公司规模 行业 福利描述 HR标签 0 检具中级工程师(C) (MJ000656) 8千-1.2万·14薪 宣城 2年 大专 2023-12-08 04:00:38 c 1 0 上海保隆汽车科技股份有限公司 已上市 5000-10000人 汽车零配件 五险一

    2024年02月03日
    浏览(39)
  • 【数据分析 - 基础入门之NumPy③】日常难题解决

    本篇文章用于整理在学习 NumPy 过程中遇到的错误,以此做个记录,希望能帮助到大家,让大家少走弯路。 在通过 Anaconda Prompt 启动 Jupyter Notebook 时,输入 jupyter notebook 启动,报错如下。 报错内容 原因 Anaconda 为 Jupyter Notebook 配置了默认打开目录,如果要在其他目录打开 Jupy

    2024年02月13日
    浏览(39)
  • 数据分析-python学习 (1)numpy相关

    内容为:https://juejin.cn/book/7240731597035864121的学习笔记 numpy数组创建 创建全0数组,正态分布、随机数组等就不说了,提供了相应的方法 通过已有数据创建有两种 arr1=np.array([1,2,3,4,5]) 或者data=np.loadtxt(‘C:/Users/000001_all.csv’,dtype=‘float’,delimiter=‘,’,skiprows=1) (data=np.genfromtxt(‘

    2024年02月13日
    浏览(42)
  • 【100天精通Python】Day53:Python 数据分析_NumPy数据操作和分析进阶

    目录 1. 广播  2 文件输入和输出 3 随机数生成 4 线性代数操作  5 进阶操作

    2024年02月09日
    浏览(66)
  • 【数据分析 - 基础入门之NumPy②】Jupyter Notebook安装及使用

    大家好,我是向阳花花花花,本期给大家带来的是 Jupyter Notebook安装及使用。作者的 【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 慢也好,步伐小也罢,是往前走就好。』—— 佚名「网易云音乐热评」 。 话

    2024年02月12日
    浏览(59)
  • 【Python数据分析】numpy库的使用-上篇

    NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象和用于处理这些数组的各种工具。NumPy的名称来自于“ Numerical Python ”的缩写。 NumPy的主要功能包括: 多维数组对象:NumPy提供了多维数组对象,称为 ndarray ,它是一个由同类型数据组成的表格。 ndarray 可以包

    2024年02月06日
    浏览(40)
  • 银行营销数据分析---Python(numpy、pandas、matplotlib)

    数据来源:kaggle银行营销数据 工具:Python、Jupyter Notebook 本项目采取的是kaggle银行营销的数据源,主要是预测客户是否会订购银行的产品,但是,这次我将 使用numpy、pandas、matplotlib数据分析三件套,基于源数据,深入分析影响银行三大业务—存款、贷款、营销产品的因素 ,

    2024年02月07日
    浏览(58)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(98)
  • 【Python爬虫与数据分析】NumPy进阶——数组操作与运算

    目录 一、NumPy数组操作 1. ndarray更改形状 2. ndarray转置 3. ndarray组合 4. ndarray拆分 5. ndarray排序 二、NumPy数组运算 1. 基本运算 2. 逻辑函数 3. 数学函数 三、日期时间的表示和间隔 1. 日期时间的表示——datetime64 2. 日期时间的计算——timedelta64 3. datetime64与datetime的转换 在对数组进

    2024年02月15日
    浏览(49)
  • python数据分析学习笔记之matplotlib、numpy、pandas

    为了学习机器学习,在此先学习以下数据分析的matplotlib,numpy,pandas,主要是为自己的学习做个记录,如有不会的可以随时查阅。希望大家可以一起学习共同进步,我们最终都可以说:功不唐捐,玉汝于成。就算遇到困难也不要气馁,大声说:我不怕,我敏而好学!! 把大量

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包