numpy,pandas

NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。

NumPy的主要功能:

ndarray,一个多维数组结构,高效且节省空间

无需循环对整组数据进行运算

*读写磁盘数据的工具以及用于操作内存映射文件的工具

*线性代数、随机数生成和傅里叶变换功能

*用于集成C、C++等代码的工具

T 数组的转置(对高维数组而言)

dtype 数组元素的数据类型

size 数组元素的个数

ndim 数组的维数

shape 数组的维度大小(以元组形式)

import numpy as np

np1=np.array([1,2,3,4])

np.max(np1)       np.argmax(np1)

dtype: bool_, int(8,16,32,64), float(16,32,64)

类型转换:astype()

创建ndarray:

array() 将列表转换为数组,可选择显式指定dtype

arange() range的numpy版,支持浮点数

linspace() 类似arange(),第三个参数为数组长度

zeros() 根据指定形状和dtype创建全0数组

ones() 根据指定形状和dtype创建全1数组

reshape()

数组和标量之间的运算

a+1 a*3 1//a a**0.5

同样大小数组之间的运算 a+b a/b a**b

数组的索引 a[5] a2[2][3] a2[2,3]

数组的切片 a[5:8] a[:3] a2[1:2, :4] a2[:,:1] a2[:,1]

问题:给一个数组,选出数组中所有大于5的数。

答案:a[a>5] 原理: a>5会对a中的每一个元素进行判断,返回一个布尔数组

布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组

问题2:给一个数组,选出数组中所有大于5的偶数。

问题3:给一个数组,选出数组中所有大于5的数和偶数。

答案: a[(a>5) & (a%2==0)] a[(a>5) | (a%2==0)]

问题1:对于一个数组,选出其第1,3,4,6,7个元素,组成新的二维数组。

答案:a[[1,3,4,6,7]]

问题2:对一个二维数组,选出其第一列和第三列答案:a[:,[1,3]]

通用函数:能同时对数组中所有元素进行运算的函数

常见通用函数: 一元函数:abs, sqrt, exp, log, ceil, floor, rint, trunc, modf, isnan, isinf, cos, sin, tan

二元函数:add, substract, multiply, divide, power, mod, maximum, mininum,

常用函数:

sum 求和

mean 求平均数

std 求标准差

var 求方差

min 求最小值

max 求最大值

argmin 求最小值索引

argmax 求最大值索引

Sort 求和

np.random常用函数

rand 给定形状产生随机数组(0到1之间的数)

randint 给定形状产生随机整数

choice 给定形状产生随机选择 s

huffle 与random.shuffle相同

uniform 给定形状产生随机数组

Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。

Series比较像列表(数组)和字典的结合体

创建方式:pd.Series([4,7,-5,3]) pd.Series([4,7,-5,3],index=['a','b','c','d']) pd.Series({'a':1, 'b':2}) pd.Series(0, index=['a','b','c','d'])

获取值数组和索引数组:values属性和index属性

Series支持NumPy模块的特性(下标):

从ndarray创建Series:

Series(arr) 与标量运算

:sr*2 两个Series运算:sr1+sr2 索引:sr[0], sr[[1,2,4]] 切片:sr[0:2]

通用函数:np.abs(sr) 布尔值过滤:sr[sr>0] Series支持字典的特性(标签): 从字典创建Series:Series(dic), in运算:’a’ in sr 键索引:sr['a'], sr[['a', 'b', 'd']]

通过标签获取: df['A'] df[['A', 'B']] df['A'][0] df[0:10][['A', 'C']] df.loc[:,['A','B']] df.loc[:,'A':'C'] df.loc[0,'A'] df.loc[0:10,['A','C']]

 

实例:

#!/usr/bin/env python
# coding: utf-8

# In[ ]:





# In[7]:


import numpy as np
np.array([1,2,3])


# In[8]:


np1=np.array([1,2,3,4])


# In[9]:


np.max(np1)


# In[10]:


np.argmax(np1)


# In[12]:


np.random.randint(0,4,size=5)


# In[13]:


np1[2
]


# In[ ]:





# In[16]:


np2=np.array([1,2,3,np.nan])


# In[17]:


np.isnan(np2)


# In[ ]:





# In[19]:


import pandas as pd


# In[21]:


sr1=pd.Series([1,2,3,np.nan])


# In[22]:


sr1


# In[ ]:





# In[ ]:





# In[26]:


np2.T


# In[28]:


np3=np.array([[1,2,3],[2,33,5]])


# In[29]:


np3


# In[30]:


np3.T


# In[31]:


np2.dtype


# In[32]:


np2.size


# In[33]:


np3.size


# In[34]:


np2.shape


# In[35]:


np3.shape


# In[36]:


np3.ndim


# In[38]:


np4=np.arange(10)


# In[39]:


np4


# In[42]:


np4=np.arange(0,100,3)


# In[43]:


np4


# In[44]:


np5=np.linspace(0,100,3)


# In[45]:


np5


# In[49]:


np6=np.zeros(3,dtype=float)


# In[50]:


np6


# In[51]:


np6=np.zeros(3,dtype=int)
np6


# In[52]:


get_ipython().set_next_input('np7=np.reshape');get_ipython().run_line_magic('pinfo', 'np.reshape')


# In[63]:


np7=np3.reshape((2,3))


# In[64]:


np7


# In[65]:


np7[:][1:2]


# In[66]:


np7[1:2][:]


# In[67]:


np7[1:2]


# In[68]:


np7[:]


# In[72]:


np7[1:2][:1]


# In[120]:


np7[1:2,0:1]


# In[ ]:





# In[ ]:





# In[74]:


np7[:,1:2]


# In[75]:


np7[,1:2]


# In[76]:


np7[0:1,1:2]


# In[77]:


np7[np7>4]


# In[78]:


np7[(np7>4)&(np7%2==0)]


# In[83]:


np.abs(np7)


# In[85]:


np.sqrt(np7)


# In[95]:


np4[[1,2]]


# In[103]:


import random


# In[106]:


np.random.rand(2,3)


# In[107]:


np.random.randint(2,3,size=10)


# In[111]:


np.random.choice(5,5)


# In[113]:


np9=[1,3,4,5,43,2]


# In[ ]:





# In[115]:


np.random.shuffle(np9)


# In[116]:


np9


# In[117]:


np.random.uniform(0,10,100)


# In[ ]:





# In[ ]:





# In[ ]:





# In[121]:


import pandas as pd


# In[139]:


ps1=pd.Series([1,3,4],index=['a','b','c'])


# In[140]:


ps1


# In[141]:


ps1['b']


# In[142]:


ps2=pd.Series([3,4,5],index=['a','b','d'])


# In[143]:


ps1+ps2


# In[145]:


ps3=ps1+ps2


# In[147]:


ps3.dropna()


# In[148]:


ps3.fillna(1)


# In[149]:


ps3.isnull()


# In[150]:


ps4=pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})


# In[151]:


ps4


# In[155]:


df=pd.DataFrame


# In[ ]:





# In[164]:


rhnba=pd.read_html('https://baike.baidu.com/item/NBA%E6%80%BB%E5%86%A0%E5%86%9B/2173192?fr=aladdin')[0]


# In[165]:


rhnba


# In[167]:


ra=rhnba


# In[168]:


ra


# In[175]:


ra[0][9]


# In[178]:


ra[0].index


# In[179]:


ra[0].T


# In[182]:


ra.columns.T


# In[184]:


ra.values


# In[186]:


ra.index.T


# In[187]:


ra.describe()


# In[189]:


ra.loc[20]


# In[190]:


ra.iloc[20]


# In[201]:


ra.tail(10)


# In[204]:


ra.groupby(2)


# In[208]:


ra.drop(0
)


# In[212]:


ra.columns=ra.loc[0]


# In[214]:


ra1=ra.drop(0)


# In[215]:


ra1


# In[216]:


ra.groupby('冠军').groups


# In[235]:


ra.groupby('FMVP').size().sort_values(ascending=False).drop('未设立')


# In[ ]:


ra.groupby('FMVP').size().sort_values


# In[237]:


ra.groupby('冠军').size().sort_values(ascending=False)


# In[ ]:





# In[241]:


ra.to_csv


# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:




猜你喜欢

转载自www.cnblogs.com/wrqysrt/p/10896182.html