数据分析(一)

打印 上一主题 下一主题

主题 808|帖子 808|积分 2424

目次
一、情况搭建
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里创建捏造情况

  1. conda create --prefix=D:/code/envs/pytorch python=3.11
复制代码
检察有哪些捏造情况
  1. # 查看一下你的anaconda所有虚拟环境
  2. conda info --envs
  3. # activate 你的路径名称 pytorch是我刚刚创建的虚拟环境
  4. activate d:/code/envs/pytorch
复制代码

然后就是直接安装pandas (自带numpy)和jupyter notebook了
  1. pip install pandas
  2. 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 属性

  1. ndim:获取数组的维度
  2. shape:获取数组的形状
  3. size:获取数组的元素个数
  4. dtype:获取数组元素的数据类型
  5. type:查看数组的类型
  6. itemsize:获取数组中元素的大小
复制代码
2.2 Numpy 中ndarray的创建



  • array()的功能是将一个列表转换为数组



  • zeros() /ones()/empty()
           函数zeros创建一个满是0的数组
        函数ones创建一个全1的数组
        函数full创建一个全为fill_value(自己指定命)的数组
        函数empty创建一个内容随机并且依靠于内存状态的数组



  • arange(), 类似 python 的 range() ,创建一个一维 ndarray 数组。
    1. arange(x,y,z...) x:起始值 y:结束值(不含) z:步长
    复制代码



  • matrix(), 是 ndarray 的子类,只能天生 2 维的矩阵
    1. 注意: mat和matrix()功能一样
    复制代码



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



  • astype()的功能是修改数组的数据类型,留意:返回新的
    1. 注意使用方法:是你已经有了的ndarray对象去调用,不是np去调用
    2. 即:nda_rand_one.astype(int)
    复制代码



  • logspace()的功能是天生一个等比数组
    1. (x,y,n,base): x起始幂,y结束幂,n个数默认是50个,base基础值默认是10
    复制代码



  • linspace()的功能是天生一个等差数组
    1. (x,y,n): x起始值,y结束值,n个数默认是50个
    复制代码

2.3 Numpy 内置函数



  • 基础函数
  1. # 基本函数如下
  2. np.ceil(): 向上最接近的整数,参数是 number 或 array
  3. np.floor(): 向下最接近的整数,参数是 number 或 array
  4. np.rint(): 四舍五入,参数是 number 或 array
  5. np.isnan(): 判断元素是否为 NaN(Not a Number),参数是 number 或 array
  6. np.multiply(): 元素相乘,参数是 number 或 array
  7. np.divide(): 元素相除,参数是 number 或 array
  8. np.abs():元素的绝对值,参数是 number 或 array
  9. np.where(condition, x, y): 三元运算符,x if condition else y
  10. # 注意: 需要注意multiply/divide 如果是两个ndarray进行运算 shape必须一致
复制代码


  • 统计函数
  1. np.mean(), np.sum():所有元素的平均值,所有元素的和,参数是 number 或 array
  2. np.max(), np.min():所有元素的最大值,所有元素的最小值,参数是 number 或 array
  3. np.std(), np.var():所有元素的标准差,所有元素的方差,参数是 number 或 array
  4. np.argmax(), np.argmin():最大值的下标索引值,最小值的下标索引值,参数是 number 或 array
  5. np.cumsum(), np.cumprod():返回一个一维数组,每个元素都是之前所有元素的 累加和 和 累乘积,参数是 number 或 array
  6. # 多维数组默认统计全部维度,axis参数可以按指定轴心统计,值为0则按列统计,值为1则按行统计。
复制代码


  • 比力函数
  1. np.any(): 至少有一个元素满足指定条件,返回True
  2. 假如我们想要知道矩阵a和矩阵b中对应元素是否有一个相等,我们需要使用any方法。
  3. np.all(): 所有的元素满足指定条件,返回True
  4. 假如我们想要知道矩阵a和矩阵b中所有对应元素是否相等,我们需要使用all方法,
复制代码


  • 去重函数
  1. np.unique():找到唯一值并返回排序结果,类似于Python的set集合
复制代码


  • 排序函数
  1. numpy.sort(数组):函数排序, 返回排序后的副本
  2. 数组.sort():在原数据上进行修改
复制代码
2.4 Numpy 运算



  • 根本运算
           数组的算数运算: 是按照元素的。新的数组被创建并且被效果添补。
  1. import numpy as np
  2. a = np.array([20, 30, 40, 50])
  3. b = np.arange(4)
  4. c = a - b
  5. print("数组a:", a)
  6. print("数组b:", b)
  7. print("数组运算a-b:", c)
复制代码

   两个ndarray, 一个是 a 另一个是 b
  它们俩之间举行 a + b 或 a - b 或 a * b 盘算的前提是 shape雷同
  对应位置的元素举行 加减乘除 的盘算
  

  • 矩阵盘算
   第一种盘算:*运算符 和 np.multiply()函数,这两种方式在 NumPy 中都表现对应元素相乘(Hadamard 积)。
  两个数组在雷同位置的元素举行乘法运算,要求两个数组的形状必须雷同。
  1. # 第一种计算
  2. import numpy as np
  3. a = np.array([[1, 2, 3], [4, 5, 6]])
  4. b = np.array([[1, 2, 3], [4, 5, 6]])
  5. print(a * b)
  6. print(np.multiply(a, b))
复制代码


   第二种盘算:dot()方法 和 np.dot()函数,它们表现矩阵乘法运算。
  对于矩阵乘法,第一个矩阵的列数必须与第二个矩阵的行数相称,才能举行运算。
  1. # 第二种计算
  2. import numpy as np
  3. x = np.array([[1, 2, 3], [4, 5, 6]])
  4. y = np.array([[6, 23], [-1, 7], [8, 9]])
  5. print(x)
  6. print(y)
  7. print(x.dot(y))
  8. print(np.dot(x, y))
复制代码


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

花瓣小跑

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表