花瓣小跑 发表于 2024-12-30 00:29:02

数据分析(一)

目次
一、情况搭建
1:安装Pandas&jupyter
2:在Pycharm中使用anaconda情况
3:jupyter的快捷键
二、Numpy
1:N-dimensional array
1.1 数组 -
1.2 维度 -
1.3 N
1.4 限制 -
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里创建捏造情况
https://i-blog.csdnimg.cn/direct/f0a639db7a2543329cc2e81efb1b2869.png#pic_center
conda create --prefix=D:/code/envs/pytorch python=3.11
检察有哪些捏造情况
# 查看一下你的anaconda所有虚拟环境
conda info --envs

# activate 你的路径名称 pytorch是我刚刚创建的虚拟环境
activate d:/code/envs/pytorch
https://i-blog.csdnimg.cn/direct/611b8201f9a84e7486aeeb16e1baa0dd.png#pic_center
然后就是直接安装pandas (自带numpy)和jupyter notebook了
pip install pandas
pip install jupyter notebook
也可以自己手动创建捏造情况,不过可能你的捏造情况python版本不能自己选罢(这里不展示)
2:在Pycharm中使用anaconda情况



[*]打开Pycharm找到File中的Setting
https://i-blog.csdnimg.cn/direct/5a177477d10a46d785f00e83fd431143.png#pic_center


[*]找到项目,点击项目构建,然后添加本地的情况
https://i-blog.csdnimg.cn/direct/ffabb441eea64c75baf239fd8287834b.png#pic_center


[*]选择捏造情况,输入地点,选一路ok即可
https://i-blog.csdnimg.cn/direct/659b60d62934492a880c940c5ac63b31.png#pic_center


[*]然后测试一下jupyter和pandas是不是可以用,pycharm也可以创建jupyter文件哈,右键就可以看到
https://i-blog.csdnimg.cn/direct/7e92620df1754720adb64dfa99ec8f91.png#pic_center
   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 数组 -

   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 维度 -

那维度是用来干嘛的?
   For instance, if each element of the data were a number, we might visualize a “one-dimensional” array like a list:
https://i-blog.csdnimg.cn/direct/34c63a1f093441c298c49679bf2016d4.png#pic_center
    A two-dimensional array would be like a table:
https://i-blog.csdnimg.cn/direct/31959dd4917a4ff2a6c24b59605a80a2.png#pic_center
    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 限制 -

   其实大多数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()的功能是将一个列表转换为数组
https://i-blog.csdnimg.cn/direct/61667e7425104381963503c5bb22951b.png#pic_center


[*] zeros() /ones()/empty()
       函数zeros创建一个满是0的数组
    函数ones创建一个全1的数组
    函数full创建一个全为fill_value(自己指定命)的数组
    函数empty创建一个内容随机并且依靠于内存状态的数组
https://i-blog.csdnimg.cn/direct/ea1bec439c2e4fd6848475ab41c54261.png#pic_center


[*] arange(), 类似 python 的 range() ,创建一个一维 ndarray 数组。
arange(x,y,z...) x:起始值 y:结束值(不含) z:步长

https://i-blog.csdnimg.cn/direct/77a128559f0c439fad045e52d9de0142.png#pic_center


[*] matrix(), 是 ndarray 的子类,只能天生 2 维的矩阵
注意: mat和matrix()功能一样

https://i-blog.csdnimg.cn/direct/dc0e42ab166c4d4985d3cbdb1bcad2b0.png#pic_center


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

https://i-blog.csdnimg.cn/direct/62f3215446bd4b19802541dc2b680b43.png#pic_center


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

https://i-blog.csdnimg.cn/direct/578893e2e6bc443ea558a13b41c22187.png#pic_center


[*] logspace()的功能是天生一个等比数组
(x,y,n,base): x起始幂,y结束幂,n个数默认是50个,base基础值默认是10

https://i-blog.csdnimg.cn/direct/e45b4ba5778844128a268c6cafb3d521.png#pic_center


[*] linspace()的功能是天生一个等差数组
(x,y,n): x起始值,y结束值,n个数默认是50个

https://i-blog.csdnimg.cn/direct/5e9d09b88f3f4662a538fe0beed1ff9f.png#pic_center
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 np

a = np.array()
b = np.arange(4)
c = a - b
print("数组a:", a)
print("数组b:", b)
print("数组运算a-b:", c)
https://i-blog.csdnimg.cn/direct/b16b6c17546e4406bbfa21f009d537ff.png#pic_center
   两个ndarray, 一个是 a 另一个是 b
它们俩之间举行 a + b 或 a - b 或 a * b 盘算的前提是 shape雷同
对应位置的元素举行 加减乘除 的盘算


[*] 矩阵盘算
   第一种盘算:*运算符 和 np.multiply()函数,这两种方式在 NumPy 中都表现对应元素相乘(Hadamard 积)。
两个数组在雷同位置的元素举行乘法运算,要求两个数组的形状必须雷同。
# 第一种计算
import numpy as np

a = np.array([, ])
b = np.array([, ])
print(a * b)

print(np.multiply(a, b))
https://i-blog.csdnimg.cn/direct/9f0fc87b47c34ac4855083b5bfc90d4b.png#pic_center
https://i-blog.csdnimg.cn/direct/34de97499eaf43f3b246f696b59c3d4f.png#pic_center
   第二种盘算:dot()方法 和 np.dot()函数,它们表现矩阵乘法运算。
对于矩阵乘法,第一个矩阵的列数必须与第二个矩阵的行数相称,才能举行运算。
# 第二种计算
import numpy as np

x = np.array([, ])
y = np.array([, [-1, 7], ])
print(x)
print(y)
print(x.dot(y))
print(np.dot(x, y))
https://i-blog.csdnimg.cn/direct/19f0353321194ceb8395d62b822f5c18.png#pic_center
https://i-blog.csdnimg.cn/direct/a90d25e8cf7a41899bf20008e494425d.png#pic_center
看到这里,恭喜你!你已经学会了Numpy的大部门使用了!你可以出去装杯了

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