欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 数据分析(一)

数据分析(一)

2025/2/24 2:42:26 来源:https://blog.csdn.net/sxwwudi/article/details/144692035  浏览:    关键词:数据分析(一)

目录

一、环境搭建

1:安装Pandas&jupyter

2:在Pycharm中使用anaconda环境

3:jupyter的快捷键

二、Numpy

1:N-dimensional array

1.1 数组 - [array]

1.2 维度 - [dimension]

1.3 N

1.4 限制 - [restrictions]

2:Numpy的使用

2.1 Numpy 属性

2.2 Numpy 中ndarray的创建

2.3 Numpy 内置函数

2.4 Numpy 运算


​ 生活不能等待别人来安排,要自己去争取和奋斗;而不论其结果是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场。有了这样的认识,你就会珍重生活,而不会玩世不恭;同时,也会给人自身注入一种强大的内在力量。-- 取自《平凡的世界》

一、环境搭建

1:安装Pandas&jupyter

相关安装包下载链接【阿里云盘的,百度云盘没空间了】
https://www.alipan.com/s/4zT9xv5Wxtk

如果你想要anaconda来用 Jupyter Notebook 且你的电脑名称是中文,别担心!!!别去网上乱搜了,我试过很多方式,基本都没用,比如改注册名什么什么乱七八糟的。

碎碎念:说实话,我不知道为什么都在推anaconda哈,每次我一搜数据分析环境,弹出来的就是anaconda,但是实际上我感觉入门数据分析的话,这个有点大材小用,因为数据分析用得比较多的是pandas,其实自己直接pip install pandas直接就可以用了,【如果是更深层次研究的话当我没说】。还有那个jupyter notebook也是,创建一个没有中文路径的虚拟环境,然后在虚拟环境中下pip install jupyter notebook就基本上可以解决了,需要什么库自己下就好了,如果没有硬性要求可以不使用anaconda自带的jupyter的,anaconda其实就是帮我们集成了很多包而已,大不了自己下包就行了。

我已经下载了anaconda了,我直接在anaconda里创建虚拟环境

在这里插入图片描述

conda create --prefix=D:/code/envs/pytorch python=3.11

查看有哪些虚拟环境

# 查看一下你的anaconda所有虚拟环境
conda info --envs# activate 你的路径名称 pytorch是我刚刚创建的虚拟环境
activate d:/code/envs/pytorch

在这里插入图片描述

然后就是直接安装pandas (自带numpy)和jupyter notebook了

pip install pandas
pip install jupyter notebook

也可以自己手动创建虚拟环境,不过可能你的虚拟环境python版本不能自己选罢(这里不展示)

2:在Pycharm中使用anaconda环境

  • 打开Pycharm找到File中的Setting

在这里插入图片描述

  • 找到项目,点击项目构建,然后添加本地的环境

在这里插入图片描述

  • 选择虚拟环境,输入地址,选一路ok即可

在这里插入图片描述

  • 然后测试一下jupyter和pandas是不是可以用,pycharm也可以创建jupyter文件哈,右键就可以看到

在这里插入图片描述

ok,到此为止,你已经学会了如何自己搭建一个jupyter的基础环境,然后你也学会了导入pandas包,所以你现在是一名初露锋芒的大将了,因为很多人都卡在了中文,而你,我的朋友,你已经超越了他们!

3:jupyter的快捷键

Jupyter Notebook  中分为两种模式:命令模式编辑模式

3.1 两种模式通用快捷键:

  • Shift+Enter,执行本单元代码,并跳转到下一单元
  • Ctrl+Enter,执行本单元代码,留在本单元

3.2 按ESC进入命令模式:

  • Y,cell切换到Code模式
  • M,cell切换到Markdown模式
  • A,在当前cell的上面添加cell
  • B,在当前cell的下面添加cell
  • 双击D:删除当前cell

3.3 按Enter进入编辑模式,或鼠标点击代码编辑框体的输入区域

  • 撤销:Ctrl+Z(Mac:CMD+Z)
  • 反撤销: Ctrl + Y(Mac:CMD+Y)
  • 补全代码:变量、方法后跟Tab键
  • 为一行或多行代码添加/取消注释:Ctrl+/(Mac:CMD+/)
  • 代码提示: shift + Tab

二、Numpy

如果你够细心的话,你在下载pandas的时候,你可以发现,你已经下载完了numpy包,因为pandas是基于numpy来的。

对了,数据分析是建立在你已经有了python基础的前提下哈,如果你对python不熟悉,可以进入 Python程序设计(零基础到精通) 头歌实践教学平台去入门一下python,这个平台对新手挺友好的

NumPy官网 对NumPy的评价是:At the core of the NumPy package, is the ndarray object.

翻译过来就是:NumPy包的核心是ndarray对象(N-dimensional array - n维数组)。

1:N-dimensional array

别担心,英语看多了就熟悉了。

N维数组 -> N 维度 数组

1.1 数组 - [array]

In computer programming, an array is a structure for storing and retrieving data. We often talk about an array as if it were a grid in space, with each cell storing one element of the data.

翻译过来就是:在计算机编程中,数组是一种存储(storing)和检索(retrieving)数据结构。我们经常把数组当作空间中的网格来讨论,每个网格存储一个数据元素

ok!恭喜你!你成功发现,原来数组在计算机中是用来对数据进行存储和检索

1.2 维度 - [dimension]

那维度是用来干嘛的?

For instance, if each element of the data were a number, we might visualize a “one-dimensional” array like a list:

在这里插入图片描述

A two-dimensional array would be like a table:

在这里插入图片描述

A three-dimensional array would be like a set of tables, perhaps stacked as though they were printed on separate pages.

翻译过来就是:

如果数据中的每个元素都是数字,我们可以将“一维”数组可视化为列表(例如上面图片里面的 1 5 2 0)

二维数组类似表格(例如上图中的表格)

三维数组就像一组桌子,可能堆叠在一起,就像印在不同的页面上一样。


三维数组你也可以这么理解,例如:(x,y,z)坐标系,有z个(x,y)平面直角坐标系堆在串在一个签上。

1.3 N

In NumPy, this idea is generalized to an arbitrary number of dimensions, and so the fundamental array class is called : it represents an “N-dimensional array”.ndarray

翻译过来就是:

在NumPy中,这种思想被推广到任意维数上,因此称为基本的array类:它表示一个”n维数组”

ok!到这里,你已经掌握了ndarray对象的基础概念了

1.4 限制 - [restrictions]

其实大多数NumPy数组都有一些限制。

例如:

  • 数组中的所有元素的数据类型必须相同。
  • 一旦创建,数组的总大小就不能改变。
  • 形状必须是“矩形”,而不是“锯齿”
    • 例如,二维数组的每一行必须具有相同的列数。

当满足这些条件时,NumPy会利用这些特性使数组比限制较少的数据结构更快、更节省内存、更方便使用。

2:Numpy的使用

ndarray介绍

  • NumPy数组是一个多维的数组对象(矩阵),称为ndarray(N-Dimensional Array)
  • 具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点
  • 注意:ndarray的下标从0开始,且数组里的所有元素必须是相同类型。
2.1 Numpy 属性
ndim:获取数组的维度
shape:获取数组的形状
size:获取数组的元素个数
dtype:获取数组元素的数据类型
type:查看数组的类型
itemsize:获取数组中元素的大小
2.2 Numpy 中ndarray的创建
  • array()的功能是将一个列表转换为数组

在这里插入图片描述

  • zeros() /ones()/empty()

    函数zeros创建一个全是0的数组

    函数ones创建一个全1的数组

    函数full创建一个全为fill_value(自己指定数)的数组

    函数empty创建一个内容随机并且依赖于内存状态的数组

在这里插入图片描述

  • arange(), 类似 python 的 range() ,创建一个一维 ndarray 数组。

    arange(x,y,z...) x:起始值 y:结束值(不含) z:步长
    

在这里插入图片描述

  • matrix(), 是 ndarray 的子类,只能生成 2 维的矩阵

    注意: mat和matrix()功能一样
    

在这里插入图片描述

  • rand()/randint()/uniform()

    需要先调用random,然后再使用
    rand()的功能是生成一个指定形状的随机浮点数数组,范围默认是0-1之间
    randint()的功能是生成一个指定形状的随机整数数组,范围需要指定,形状用size指定
    uniform()的功能是生成一个指定形状的随机浮点数数组,范围需要指定,形状用size指定
    

在这里插入图片描述

  • astype()的功能是修改数组的数据类型,注意:返回新的

    注意使用方法:是你已经有了的ndarray对象去调用,不是np去调用
    即:nda_rand_one.astype(int)
    

在这里插入图片描述

  • logspace()的功能是生成一个等比数组

    (x,y,n,base): x起始幂,y结束幂,n个数默认是50个,base基础值默认是10
    

在这里插入图片描述

  • linspace()的功能是生成一个等差数组

    (x,y,n): x起始值,y结束值,n个数默认是50个
    

在这里插入图片描述

2.3 Numpy 内置函数
  • 基础函数
# 基本函数如下
np.ceil(): 向上最接近的整数,参数是 number 或 array
np.floor(): 向下最接近的整数,参数是 number 或 array
np.rint(): 四舍五入,参数是 number 或 array
np.isnan(): 判断元素是否为 NaN(Not a Number),参数是 number 或 array
np.multiply(): 元素相乘,参数是 number 或 array
np.divide(): 元素相除,参数是 number 或 array
np.abs():元素的绝对值,参数是 number 或 array
np.where(condition, x, y): 三元运算符,x if condition else y
# 注意: 需要注意multiply/divide 如果是两个ndarray进行运算 shape必须一致
  • 统计函数
np.mean(), np.sum():所有元素的平均值,所有元素的和,参数是 number 或 array
np.max(), np.min():所有元素的最大值,所有元素的最小值,参数是 number 或 array
np.std(), np.var():所有元素的标准差,所有元素的方差,参数是 number 或 array
np.argmax(), np.argmin():最大值的下标索引值,最小值的下标索引值,参数是 number 或 array
np.cumsum(), np.cumprod():返回一个一维数组,每个元素都是之前所有元素的 累加和 和 累乘积,参数是 number 或 array# 多维数组默认统计全部维度,axis参数可以按指定轴心统计,值为0则按列统计,值为1则按行统计。
  • 比较函数
np.any(): 至少有一个元素满足指定条件,返回True
假如我们想要知道矩阵a和矩阵b中对应元素是否有一个相等,我们需要使用any方法。np.all(): 所有的元素满足指定条件,返回True
假如我们想要知道矩阵a和矩阵b中所有对应元素是否相等,我们需要使用all方法,
  • 去重函数
np.unique():找到唯一值并返回排序结果,类似于Python的set集合
  • 排序函数
numpy.sort(数组):函数排序, 返回排序后的副本
数组.sort():在原数据上进行修改
2.4 Numpy 运算
  • 基本运算

    数组的算数运算: 是按照元素的。新的数组被创建并且被结果填充。

import numpy as npa = np.array([20, 30, 40, 50])
b = np.arange(4)
c = a - b
print("数组a:", a)
print("数组b:", b)
print("数组运算a-b:", c)

在这里插入图片描述

两个ndarray, 一个是 a 另一个是 b

它们俩之间进行 a + b 或 a - b 或 a * b 计算的前提是 shape相同

对应位置的元素进行 加减乘除 的计算

  • 矩阵计算

第一种计算*运算符 和 np.multiply()函数,这两种方式在 NumPy 中都表示对应元素相乘(Hadamard 积)。

两个数组在相同位置的元素进行乘法运算,要求两个数组的形状必须相同。

# 第一种计算
import numpy as npa = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 2, 3], [4, 5, 6]])
print(a * b)print(np.multiply(a, b))

在这里插入图片描述

在这里插入图片描述

第二种计算dot()方法 和 np.dot()函数,它们表示矩阵乘法运算。

对于矩阵乘法,第一个矩阵的列数必须与第二个矩阵的行数相等,才能进行运算。

# 第二种计算
import numpy as npx = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([[6, 23], [-1, 7], [8, 9]])
print(x)
print(y)
print(x.dot(y))
print(np.dot(x, y))

在这里插入图片描述

在这里插入图片描述

看到这里,恭喜你!你已经学会了Numpy的大部分使用了!你可以出去装杯了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词