numpy介绍
一些基本介绍¶
Jupyter是一个可以在网页上运行Python代码的一个平台¶
现在介绍一下Jupyter的使用方法: 如你所见,Jupyter有许多个cell组成,有代码块,和markdown块.代码块里面有In[]和Out[]
In [1]:
#Use %timeit来计算时间
%timeit L = [n ** 2 for n in range(1000)]
268 µs ± 8.03 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [2]:
#展示操作
%history -n 1-4
1: #Use %timeit来计算时间 %timeit L = [n ** 2 for n in range(1000)] 2: #展示操作 %history -n 1-4
In [ ]:
#To run
%run myscript.py
#run myscript.py and output results in the current cell
#• To load/import
%load myscript.py
#load "import" myscript.py into the current cell
#• To write/save
%%writefile myfile.py.
In [3]:
#可以调用Shell语句
contents = !ls
print(contents)
message = "hello from Python"
!echo {message}
['$RECYCLE.BIN', '2020.夏学习', '2020秋学习', '2021 春学习', '2021冬学习', 'E5A92AD8-ADB5-4A77-A9FE-57B8F8D43B51.png', 'TOFEL', 'Thumbs.db', 'U201913821+朱旭鹏汇编语言实验报告.pdf', 'Windows', 'abab.html', 'abab.ipynb', 'desktop.ini', 'exp.', 'midi合集', 'myfile.py.', 'svn', '书', '第11-13章基础练习题(修订版).docx', '汇编', '结果.pdf', '杂七杂八', '题目设计.docx', '阿巴阿巴.md', '每日计划.xlsx', '汇编语言实验报告.docx', '汇编语言实验报告.pdf'] hello from Python
In [4]:
def func1(a, b):
return a / b
def func2(x):
a = x
b = x - 1
return func1(a, b)
In [5]:
%debug func2(1)
#运行会产生ipdb>
#输入语句可以产生效果
NOTE: Enter 'c' at the ipdb> prompt to continue execution. > <string>(1)<module>() ipdb> up > /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/bdb.py(587)run() 585 sys.settrace(self.trace_dispatch) 586 try: --> 587 exec(cmd, globals, locals) 588 except BdbQuit: 589 pass ipdb> print(a) *** NameError: name 'a' is not defined ipdb> exit
下面对于numpy的操作进行一些介绍¶
In [6]:
print("hello")
hello
In [7]:
%%writefile myfile.py.
print("hello")
Overwriting myfile.py.
In [8]:
#Python自带的List
L=[1,2,3,4,5]
print(L)
[1, 2, 3, 4, 5]
In [9]:
import numpy as np
In [18]:
#一些声明的方法
#二维声明
a = np.array([[1, 2], [3, 4]])
print (a)
# dtype 参数
a = np.array([1, 2, 3], dtype = complex)
print (a)
[[1 2] [3 4]] [1.+0.j 2.+0.j 3.+0.j]
In [19]:
#定义数据结构并且声明数组
dt = np.dtype([('age',np.int8)])
a = np.array([(10,),(20,),(30,)], dtype = dt)
#限制输出的元素
print(a['age'])
student = np.dtype([('name','S20'), ('age', 'i1'), ('marks', 'f4')])
a = np.array([('abc', 21, 50),('xyz', 18, 75)], dtype = student)
print(a)
[10 20 30] [(b'abc', 21, 50.) (b'xyz', 18, 75.)]
In [11]:
#全部填充0
b=np.zeros(10, dtype=int)
print(b)
#全部填充1
b=np.ones((3, 5), dtype=float)
print(b)
#全部填充某个值
b=np.full((3, 5), 3.14)
print(b)
#每步跳2
b=np.arange(0, 20, 2)
print(b)
#一共走n步
b=np.linspace(0, 1, 5)
print(b)
[0 0 0 0 0 0 0 0 0 0] [[1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.] [1. 1. 1. 1. 1.]] [[3.14 3.14 3.14 3.14 3.14] [3.14 3.14 3.14 3.14 3.14] [3.14 3.14 3.14 3.14 3.14]] [ 0 2 4 6 8 10 12 14 16 18] [0. 0.25 0.5 0.75 1. ]
In [12]:
#ramdom函数:生成随机数
np.random.random((3, 3))
Out[12]:
array([[0.61499486, 0.51899507, 0.79505671], [0.81141113, 0.4516106 , 0.65727601], [0.89103435, 0.93678756, 0.2953434 ]])
In [13]:
#取值
np.random.normal(0,1, (3, 3))
Out[13]:
array([[ 0.36907848, 1.28557422, 0.28982773], [ 0.70328736, 0.68839499, -0.15777985], [ 0.82233816, -2.18052732, -0.27150497]])
In [22]:
#随机取整数值
np.random.seed(0)
x1 = np.random.randint(10, size=6) # One-dimensional array
x2 = np.random.randint(10, size=(3, 4)) # Two-dimensional array
x3 = np.random.randint(10, size=(3, 4, 5)) # Three-dimensional arra
print(x2)
#可以取n:m的值,n默认为0,m默认为最大值
x2_sub = x2[:2, :2]
x2_sub2 = x2[2: ,2:]
#可以像n维数组那样取值
x2_sub[0, 0] = 99
print(x2_sub)
print(x2_sub2)
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1]) # 第2列元素
print (a[1,...]) # 第2行元素
print (a[...,1:]) # 第2列及剩下的所有元素
[[3 5 2 4] [7 6 8 8] [1 6 7 7]] [[99 5] [ 7 6]] [[7 7]] [2 4 5] [3 4 5] [[2 3] [4 5] [5 6]]
In [16]:
#这个是引用的,类似于C的数组
print(x2)
[[99 5 2 4] [ 7 6 8 8] [ 1 6 7 7]]
In [17]:
#深拷贝
x2_copy = x2[:2, :2].copy()
x2_copy[0, 0] = 9999
print(x2_copy)
print(x2)
[[9999 5] [ 7 6]] [[99 5 2 4] [ 7 6 8 8] [ 1 6 7 7]]
In [20]:
#reshape可以改变维度
a = np.arange(24)
print (a.ndim) # a 现只有一个维度
# 现在调整其大小
b = a.reshape(2,4,3) # b 现在拥有三个维度
print (b.ndim)
# 当然可以通过shape来改变(reshape是个方法,shape是个成员)
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print (a)
1 3 [[1 2] [3 4] [5 6]]
In [21]:
#可以通过已有数组来构建narray
x = [1,2,3]
a = np.asarray(x)
print (a)
x = [(1,2,3),(4,5)]
a = np.asarray(x)
print (a)
[1 2 3] [(1, 2, 3) (4, 5)]
In [ ]:
a = np.arange(10)
s = slice(2,7,2) # 从索引 2 开始到索引 7 停止,间隔为2
print (a[s])
b = a[2:7:2] # 从索引 2 开始到索引 7 停止,间隔为 2
print(b)
In [24]:
grid = np.arange(1, 10).reshape((3, 3))
print(grid)
[[1 2 3] [4 5 6] [7 8 9]]
In [26]:
#转置
x=np.array(range(1,10)).reshape((3,3))
print(x.T)
x=np.arange(10)
print(x.T)
#布尔索引
print ('大于 5 的元素是:')
print (x[x > 5])
[[1 4 7] [2 5 8] [3 6 9]] [0 1 2 3 4 5 6 7 8 9] 大于 5 的元素是: [6 7 8 9]
In [27]:
x=np.arange(32).reshape((8,4))
print (x)
print (x[np.ix_([1,5,7,2],[0,3,1,2])])#选择行,选择列
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] [16 17 18 19] [20 21 22 23] [24 25 26 27] [28 29 30 31]] [[ 4 7 5 6] [20 23 21 22] [28 31 29 30] [ 8 11 9 10]]
In [28]:
#广播
a = np.array([[ 0, 0, 0],
[10,10,10],
[20,20,20],
[30,30,30]])
b = np.array([1,2,3])
print(a + b)
[[ 1 2 3] [11 12 13] [21 22 23] [31 32 33]]
In [27]:
grid = np.array([[1, 2, 3],
[4, 5, 6]])
np.concatenate([grid, grid])
np.concatenate([grid, grid], axis= 1)
Out[27]:
array([[1, 2, 3, 1, 2, 3], [4, 5, 6, 4, 5, 6]])
In [29]:
def compute_reciprocals(values):
output = np.empty(len(values))
for i in range(len(values)):
output[i] = 1.0 / values[i]
return output
values = np.random.randint(1, 10, size=5)
compute_reciprocals(values)
Out[29]:
array([0.2 , 0.25 , 0.2 , 0.2 , 0.11111111])
In [31]:
big_array = np.random.randint(1, 100, size=1000000)
%timeit compute_reciprocals(big_array)
%timeit (1.0 / big_array)
1.97 s ± 37.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each) 2.95 ms ± 63.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
In [33]:
M = np.random.random((3, 4))
print(M)
M.sum()
a=M.min(axis=0)
print(a)
a=M.max(axis=1)
print(a)
[[0.35944446 0.48089353 0.68866118 0.88047589] [0.91823547 0.21682214 0.56518887 0.86510256] [0.50896896 0.91672295 0.92115761 0.08311249]] [0.35944446 0.21682214 0.56518887 0.08311249] [0.88047589 0.91823547 0.92115761]
一些数学函数和字符串函数就暂时不说,可以查询API
pandas的一些操作¶
In [35]:
#传统的关于字典的操作
datatable = [{'temp':28, 'humidity':80},
{'temp':26, 'humidity':75},
{'temp':32, 'humidity':50},
{'temp':30, 'humidity':65},
{'temp':33, 'humidity':55}]
#遍历元素
for i in range(0, len(datatable)):
for j in datatable[i]:
print('Row {} Cell {}: {}'.format(i, j, datatable[i][j]))
columns = []
columns.append([])
columns.append([])
for i in range(0, len(datatable)):
columns[0].append(datatable[i]['temp'])
columns[1].append(datatable[i]['humidity'])
#遍历列
for i in range(0, len(columns)):
print('Column {}: {}'.format(i, columns[i]))
Row 0 Cell temp: 28 Row 0 Cell humidity: 80 Row 1 Cell temp: 26 Row 1 Cell humidity: 75 Row 2 Cell temp: 32 Row 2 Cell humidity: 50 Row 3 Cell temp: 30 Row 3 Cell humidity: 65 Row 4 Cell temp: 33 Row 4 Cell humidity: 55 Column 0: [28, 26, 32, 30, 33] Column 1: [80, 75, 50, 65, 55]
In [43]:
datatable2 = [{'temp':28, 'humidity':80},
{'temp':26, 'humidity':75},
{'temp':32, 'humidity':50},
{'temp':30, 'humidity':65},
{'temp':33, 'humidity':55}]
averages = []
for i in range(0, len(datatable1)):
averages.append((datatable1[i]['temp'] + datatable2[i]['temp']) / 2)
for i in range(0, len(datatable1)):
print('Average for Row {}: {}'.format(i, averages[i]))
Average for Row 0: 28.0 Average for Row 1: 26.0 Average for Row 2: 32.0 Average for Row 3: 30.0 Average for Row 4: 33.0
In [50]:
#声明一个Series
!pip install pandas
import numpy as np
import pandas as pd
#index默认为从0开始的
s = pd.Series([12, -4, 7, 9])
print(s)
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pandas
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/d6/66/35235bc1d1ebc34d807c100c4b54a13660695f18c2fb29d2192ebbb5a613/pandas-1.2.4-cp38-cp38-macosx_10_9_x86_64.whl (10.5 MB)
|████████████████████████████████| 10.5 MB 1.3 MB/s eta 0:00:01
Requirement already satisfied: python-dateutil>=2.7.3 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from pandas) (2.8.1)
Collecting pytz>=2017.3
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/70/94/784178ca5dd892a98f113cdd923372024dc04b8d40abe77ca76b5fb90ca6/pytz-2021.1-py2.py3-none-any.whl (510 kB)
|████████████████████████████████| 510 kB 3.4 MB/s eta 0:00:01
Requirement already satisfied: numpy>=1.16.5 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from pandas) (1.18.2)
Requirement already satisfied: six>=1.5 in /Users/xupengzhu/Library/Python/3.8/lib/python/site-packages (from python-dateutil>=2.7.3->pandas) (1.14.0)
Installing collected packages: pytz, pandas
Successfully installed pandas-1.2.4 pytz-2021.1
WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available.
You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 -m pip install --upgrade pip' command.
0 12
1 -4
2 7
3 9
dtype: int64
In [51]:
s = pd.Series([12, -4, 7, 9], index=['a', 'b', 'c', 'd'])
print(s)
# Selecting elements
print(s[2])#第二个
print(s['b'])
print(s[0:2])
print(s[['b','c']])
#赋值
s[1] = 0
print(s)
# 布尔索引
print(s[s>8])
# Operations and math functions
print(s/2)
a 12 b -4 c 7 d 9 dtype: int64 7 -4 a 12 b -4 dtype: int64 b -4 c 7 dtype: int64 a 12 b 0 c 7 d 9 dtype: int64 a 12 d 9 dtype: int64 a 6.0 b 0.0 c 3.5 d 4.5 dtype: float64
In [53]:
serd = pd.Series([1,0,2,1,2,3], index=['white','white','blue','green','green','yellow'])
print(serd)
print(serd.unique())
print(serd.value_counts())
#在里面么?不再的话就是True
print(serd.isin([0,3]))
print(serd[serd.isin([0,3])])
white 1 white 0 blue 2 green 1 green 2 yellow 3 dtype: int64 [1 0 2 3] 1 2 2 2 0 1 3 1 dtype: int64 white False white True blue False green False green False yellow True dtype: bool white 0 yellow 3 dtype: int64
In [54]:
#根据字典赋值
mydict1 = {'red':2000, 'blue': 1000, 'yellow':500, 'orange':1000}
myseries1 = pd.Series(mydict1)
print(myseries1)
mydict2 = {'red':400, 'yellow':1000, 'black':700}
myseries2 = pd.Series(mydict2)
print(myseries2)
#如果一个没有一个有.默认为NaN
myseries3 = myseries1 + myseries2
print(myseries3)
red 2000 blue 1000 yellow 500 orange 1000 dtype: int64 red 400 yellow 1000 black 700 dtype: int64 black NaN blue NaN orange NaN red 2400.0 yellow 1500.0 dtype: float64
In [63]:
#构建dataFrame
data = {'color': ['blue','green','yellow','red','white'],
'object': ['ball','pen','pencil','paper','mug'],
'price':[1.2,1.0,0.6,0.9,1.7]}
print(data)
frame = pd.DataFrame(data)
print(frame)
#有什么行
print(frame.columns)
#有什么列
print(frame.index)
#把值按照矩阵的形式输出
print(frame.values)
#只输出某一列
print(frame['price'])
print(frame.price)
#输出某一行
print(frame.iloc[0])
#某一行某一列元素
print(frame.iloc[0]['price'])
#可以改变元素的值
#另外一个方法寻找
for i in range(0, len(frame.index)):
frame.loc[i,'price'] = 8.88
print(frame.price)
{'color': ['blue', 'green', 'yellow', 'red', 'white'], 'object': ['ball', 'pen', 'pencil', 'paper', 'mug'], 'price': [1.2, 1.0, 0.6, 0.9, 1.7]} color object price 0 blue ball 1.2 1 green pen 1.0 2 yellow pencil 0.6 3 red paper 0.9 4 white mug 1.7 Index(['color', 'object', 'price'], dtype='object') RangeIndex(start=0, stop=5, step=1) [['blue' 'ball' 1.2] ['green' 'pen' 1.0] ['yellow' 'pencil' 0.6] ['red' 'paper' 0.9] ['white' 'mug' 1.7]] 0 1.2 1 1.0 2 0.6 3 0.9 4 1.7 Name: price, dtype: float64 0 1.2 1 1.0 2 0.6 3 0.9 4 1.7 Name: price, dtype: float64 color blue object ball price 1.2 Name: 0, dtype: object 1.2 0 8.88 1 8.88 2 8.88 3 8.88 4 8.88 Name: price, dtype: float64
In [65]:
#利用字典加上一个index数组构造dataFrame
data1 = {'ball': [0,4,8,12],
'pen': [1,5,9,13],
'pencil': [2,6,10,14],
'paper':[3,7,11,15]}
frame1 = pd.DataFrame(data1, index=['red','blue','yellow','white'])
print(frame1)
data2 = {'mug': [0,3,6,9],
'pen': [1,4,7,10],
'ball': [2,5,8,11]}
frame2 = pd.DataFrame(data2, index=['blue','green','white','yellow'])
print(frame2)
ball pen pencil paper red 0 1 2 3 blue 4 5 6 7 yellow 8 9 10 11 white 12 13 14 15 mug pen ball blue 0 1 2 green 3 4 5 white 6 7 8 yellow 9 10 11
In [66]:
frame3 = frame1.add(frame2)
print(frame3)
#有重复的就是NaN
ball mug paper pen pencil blue 6.0 NaN NaN 6.0 NaN green NaN NaN NaN NaN NaN red NaN NaN NaN NaN NaN white 20.0 NaN NaN 20.0 NaN yellow 19.0 NaN NaN 19.0 NaN
In [73]:
print(frame1.sum())
print(frame1.mean())
print(frame1.describe())
ball 24 pen 28 pencil 32 paper 36 dtype: int64 ball 6.0 pen 7.0 pencil 8.0 paper 9.0 dtype: float64 ball pen pencil paper count 4.000000 4.000000 4.000000 4.000000 mean 6.000000 7.000000 8.000000 9.000000 std 5.163978 5.163978 5.163978 5.163978 min 0.000000 1.000000 2.000000 3.000000 25% 3.000000 4.000000 5.000000 6.000000 50% 6.000000 7.000000 8.000000 9.000000 75% 9.000000 10.000000 11.000000 12.000000 max 12.000000 13.000000 14.000000 15.000000
In [76]:
#读入csv
csvframe1 = pd.read_csv('/Users/xupengzhu/Desktop/src/data/myCSV_01.csv')
print(csvframe1)
white red blue green animal 0 1 5 2 3 cat 1 2 7 8 5 dog 2 3 3 6 7 horse 3 2 2 8 3 duck 4 4 4 2 1 mouse
In [77]:
csvframe1 = pd.read_csv('/Users/xupengzhu/Desktop/src/data/myCSV_01.csv',index_col=4)
print(csvframe1)
white red blue green animal cat 1 5 2 3 dog 2 7 8 5 horse 3 3 6 7 duck 2 2 8 3 mouse 4 4 2 1
In [83]:
csvframe = pd.read_csv('/Users/xupengzhu/Desktop/src/data/myCSV_01.csv')
csvframe['total'] = csvframe['white'] + csvframe['red'] + csvframe['blue'] + csvframe['green']
csvframe['excess'] = False
#综合利用
for i in range(len(csvframe)):
if csvframe.loc[i,'total'] > 15:
csvframe.loc[i,'excess'] = True
print(csvframe)
white red blue green animal total excess 0 1 5 2 3 cat 11 False 1 2 7 8 5 dog 22 True 2 3 3 6 7 horse 19 True 3 2 2 8 3 duck 15 False 4 4 4 2 1 mouse 11 False
In [84]:
#删除元素
csvframe = csvframe.drop('total', axis=1)
csvframe = csvframe.drop(0, axis=0)
print(csvframe)
white red blue green animal excess 1 2 7 8 5 dog True 2 3 3 6 7 horse True 3 2 2 8 3 duck False 4 4 4 2 1 mouse False
In [89]:
! pip install matplotlib
! pip install seaborn
import matplotlib.pyplot as plt
import seaborn
seaborn.set()
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Requirement already satisfied: matplotlib in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (3.4.2) Requirement already satisfied: cycler>=0.10 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (0.10.0) Requirement already satisfied: numpy>=1.16 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (1.18.2) Requirement already satisfied: pyparsing>=2.2.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (2.4.7) Requirement already satisfied: python-dateutil>=2.7 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (2.8.1) Requirement already satisfied: pillow>=6.2.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (8.2.0) Requirement already satisfied: kiwisolver>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib) (1.3.1) Requirement already satisfied: six in /Users/xupengzhu/Library/Python/3.8/lib/python/site-packages (from cycler>=0.10->matplotlib) (1.14.0) WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available. You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 -m pip install --upgrade pip' command. Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting seaborn Downloading https://pypi.tuna.tsinghua.edu.cn/packages/68/ad/6c2406ae175f59ec616714e408979b674fe27b9587f79d59a528ddfbcd5b/seaborn-0.11.1-py3-none-any.whl (285 kB) |████████████████████████████████| 285 kB 1.6 MB/s eta 0:00:01 Requirement already satisfied: matplotlib>=2.2 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from seaborn) (3.4.2) Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from seaborn) (1.4.1) Requirement already satisfied: pandas>=0.23 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from seaborn) (1.2.4) Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from seaborn) (1.18.2) Requirement already satisfied: kiwisolver>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib>=2.2->seaborn) (1.3.1) Requirement already satisfied: pyparsing>=2.2.1 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib>=2.2->seaborn) (2.4.7) Requirement already satisfied: pillow>=6.2.0 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib>=2.2->seaborn) (8.2.0) Requirement already satisfied: python-dateutil>=2.7 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib>=2.2->seaborn) (2.8.1) Requirement already satisfied: cycler>=0.10 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from matplotlib>=2.2->seaborn) (0.10.0) Requirement already satisfied: six in /Users/xupengzhu/Library/Python/3.8/lib/python/site-packages (from cycler>=0.10->matplotlib>=2.2->seaborn) (1.14.0) Requirement already satisfied: pytz>=2017.3 in /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages (from pandas>=0.23->seaborn) (2021.1) Installing collected packages: seaborn Successfully installed seaborn-0.11.1 WARNING: You are using pip version 21.0.1; however, version 21.1.1 is available. You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 -m pip install --upgrade pip' command.
In [90]:
csvframe.plot()
Out[90]:
<AxesSubplot:>
In [ ]:
0 条评论