ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据分析工具之numpy、pandas & jupyter notebook基本使用

2021-09-13 20:05:43  阅读:221  来源: 互联网

标签:jupyter %% df 圈圈 notebook scores numpy


数据分析工具之numpy、pandas & jupyter notebook基本使用

安装

命令行使用命令:pip install numpy pandas 、pip install jupyter jupyterlab安装第三方库

jupyter notebook 与jupyterlab 使用方式大同小异。本文只分享jupyter notebook的使用

使用

cd至想要保存生成文件的目标路径后使用如下命令:jupyter notebook后会自动使用默认浏览器打开网页(显示该路径下的所有文件)。如无法自动跳转则需要配置:命令行使用:jupyter notebook --generate-config

复制其路径使用记事本打开该文件,查找(ctrl + f) c.NotebookApp.password =

在配置文件的这句后面添加:

import webbrowser
webbrowser.register(“chrome”,None,webbrowser.GenericBrowser(u"C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"))
c.NotebookApp.browser = “chrome”

若为其他浏览器则将Chrome替换为相应的浏览器(如:“QQ浏览器”),相应的路径也替换为对应浏览器的安装路径(.exe)

* ?获取“*”帮助

import random
random?

魔法指令

%ls
运行时间效率
%timeit [1,2,3,4,5]
48.9 ns ± 1.95 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit (1,2,3,4,5)
7.1 ns ± 0.434 ns per loop (mean ± std. dev. of 7 runs, 100000000 loops each)

查看魔法指令

%lsmagic
Available line magics:
%alias  %alias_magic  %autoawait  %autocall  %automagic  %autosave  %bookmark  %cd  %clear  %cls  %colors  %conda  %config  %connect_info  %copy  %ddir  %debug  %dhist  %dirs  %doctest_mode  %echo  %ed  %edit  %env  %gui  %hist  %history  %killbgscripts  %ldir  %less  %load  %load_ext  %loadpy  %logoff  %logon  %logstart  %logstate  %logstop  %ls  %lsmagic  %macro  %magic  %matplotlib  %mkdir  %more  %notebook  %page  %pastebin  %pdb  %pdef  %pdoc  %pfile  %pinfo  %pinfo2  %pip  %popd  %pprint  %precision  %prun  %psearch  %psource  %pushd  %pwd  %pycat  %pylab  %qtconsole  %quickref  %recall  %rehashx  %reload_ext  %ren  %rep  %rerun  %reset  %reset_selective  %rmdir  %run  %save  %sc  %set_env  %store  %sx  %system  %tb  %time  %timeit  %unalias  %unload_ext  %who  %who_ls  %whos  %xdel  %xmode

Available cell magics:
%%!  %%HTML  %%SVG  %%bash  %%capture  %%cmd  %%debug  %%file  %%html  %%javascript  %%js  %%latex  %%markdown  %%perl  %%prun  %%pypy  %%python  %%python2  %%python3  %%ruby  %%script  %%sh  %%svg  %%sx  %%system  %%time  %%timeit  %%writefile

Automagic is ON, % prefix IS NOT needed for line magics.

系统命令

打开记事本

!notepad

打开计算器

!calc

快捷键

按esc键退出编辑进入命令模式,按h以查看所有快捷命令:

快捷键

公式编辑

格式:$ $ 公式体 $$

例:

总体标准差:

$ $ \sigma = \sqrt {\frac {\sum { (x_i - \mu)^2}} {n}} $$

样本标准差:

$ $ S = \sqrt {\frac {\sum{ (x_i - \bar{x})^2}} {n - 1}} $$

运行后:

公式

import random

names = ['圈圈1','圈圈2','圈圈3','圈圈4','圈圈5']
courses = ['Python','Java','JavaScript']
scores = [[random.randint(10,100) for _ in range(3)] for _ in range(5)]

生成二维数组

In [2]:

import numpy as np
scores = np.array(scores)
scores

Out[2]:

array([[87, 78, 96],
       [81, 26, 11],
       [27, 79, 65],
       [98, 97, 43],
       [32, 35, 76]])

求指定轴平均值

水平方向为1轴,垂直方向为0轴 使用:例: scores.mean(axis = 1) --> 求水平方向所有均值

In [3]:

np.round(scores.mean(axis=1),2)

Out[3]:

array([87.  , 39.33, 57.  , 79.33, 47.67])

Pandas

Pandas(pandas data set) 提供了‘series’、‘DataFrame’、‘Index’三种核心数据类型,掐年两个分别用于处理以为和二维的数据后者为它们提供索引服务

In [4]:

import pandas as pd
df = pd.DataFrame(data = scores,columns=courses,index = names)
df

Out[4]:

PythonJavaJavaScript
圈圈1877896
圈圈2812611
圈圈3277965
圈圈4989743
圈圈5323576

计算每个人的平均分

In [5]:

df.mean(axis = 1)

Out[5]:

圈圈1    87.000000
圈圈2    39.333333
圈圈3    57.000000
圈圈4    79.333333
圈圈5    47.666667
dtype: float64

将平均分作为新的列加到原来的表中

In [6]:

df['平均分'] = df.mean(axis = 1)
df

Out[6]:

PythonJavaJavaScript平均分
圈圈187789687.000000
圈圈281261139.333333
圈圈327796557.000000
圈圈498974379.333333
圈圈532357647.666667

In [35]:

!pip install openpyxl
Looking in indexes: https://pypi.doubanio.com/simple
Requirement already satisfied: openpyxl in d:\programs\python\python38\lib\site-packages (3.0.7)
Requirement already satisfied: et-xmlfile in d:\programs\python\python38\lib\site-packages (from openpyxl) (1.1.0)

将上述表格写入Excel文件

必须先使用系统命令!pip install openpyxl安装:openpyxl

In [36]:

df.to_excel('成绩表.xlsx')

生成指定图表

obj.plot(kind = ‘图表类型’)

解决图标中中文显示问题

git (回到桌面git bash here)命令: notepad ~/.matplotlib/fontlist-v330.json 以记事本打开该文件查找可显示中文字体的字体名称

In [7]:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ["STFangsong",]   # 添加中文字体
plt.rcParams['axes.unicode_minus'] = False

调整清晰度:显示为矢量图

In [9]:

%config InlineBackend.figure_format = 'svg'

这句还是相当有必要的,不设置图表画质相当低

生成柱状图

In [10]:

df.plot(kind = 'bar')
# 调整x坐标使其横向显示名字
plt.xticks(rotation = 0)

Out[10]:

(array([0, 1, 2, 3, 4]),
 [Text(0, 0, '圈圈1'),
  Text(1, 0, '圈圈2'),
  Text(2, 0, '圈圈3'),
  Text(3, 0, '圈圈4'),
  Text(4, 0, '圈圈5')])

生成的图表:

图表

标签:jupyter,%%,df,圈圈,notebook,scores,numpy
来源: https://blog.csdn.net/Lemon_Review/article/details/120274114

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有