import pandas as pd
import numpy as np
from numpy import random
#数组-矩阵-列表之间互相转换
#字典
dict = {'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]}
del(dict)
dict([('one', 1), ('two', 2), ('three', 3)])
#列表(list)
a1=[1,2,3]
b1=[[1, 2, 3], [4, 5, 6]]
#数组(array)
a2=np.array(b1)
b2=np.arange(0,10,1,dtype=np.float)
np.zeros((2,3)).tolist()
np.indices((4,4)).tolist()
np.linspace(1,10,10) #在区间[start-1,stop-4]中,返回“num-4”(第三为num)个等间距的样本
np.random.rand(4,2) #随机生成四行两列的随机数。
random.randint(0,10, size=5) #随机生成0到10之间的5个整数(可重复)
np.random.random(size=5)#随机生成0-1之间的5个小数
np.random.uniform(0,3,size=5)#随机生成0-3之间的5个小数
#矩阵(matrix)
a3=np.mat(a1)
#数据框(datafame)
a3=pd.DataFrame(dict)
arraytodataframe = pd.DataFrame(b1,columns=['a','b','c'])
b3=a3.values #dataframe转array
#列表(list)-元素数据类型可以不一样;数组(array)-元素数据类型一样
ArrayToList1 = a2.tolist() # 矩阵转列表:[[1, 2, 3], [4, 5, 6]]
ArrayToList2 = list(a2) # 注意点2: [array([1, 2, 3]), array([4, 5, 6])]
#练习题:
#创建dataframe
data={'name':['xiaozhang','xiaoli','lily','tony'], 'sex':['boy','girl','girl','boy'], 'age':[12,11,10,11],
'number':np.random.randn(4), 'class':np.linspace(1,4,4)}
data1=pd.DataFrame(data)
#创建二维数组
#方法一:
records=np.arange(0,20)
result=[]
for y in range(0,4):
a=[]
for x in range(0,5):
a.append(records[x+y*5])
result.append(a)
print(result)
#方法二:
result2=[[np.arange(0,20)[x+y*5] for x in range(0,5)] for y in range(4)]
#方法三:
x=np.arange(0,20)
result3=x.reshape((4,5))
#找出共同元素
a=[0,1,2,3]
b=[2,3,4,5]
c=[]
for i in a:
for j in b:
if i==j:
c.append(i)
else:
continue
print(c)
c=[x for x in a if x in b] #简写
#大于等于3的替换为3,小于等于1的替换为1
#方法一:
x=[0,1,2,3]
y=[]
for i in x:
if i>=2:
y.append(2)
elif i<=1:
y.append(1)
print(y)
#方法二:
y=pd.DataFrame(x,columns=['value'])
def fun(x):
if x>=2:
return(2)
elif x<=1:
return(1)
y['value']=y['value'].apply(lambda x: fun(x))
#mapping(按a的value排序)
a = {'a':0,'b':1,'c':2}
b = pd.DataFrame({'city':['a','b','c'],'number':np.random.randint(0,10,size=3)})
c=pd.DataFrame(a,index=[0]).T.reset_index()
c.columns=['city','num']
d=pd.merge(b,c,on='city').sort_values(by='num',ascending=True)
#删除重复值(使用set集合可以去除重复元素)
a=[0,1,2,3]
b=[2,3,4,5]
#方法一:
list(set(a+b))
#方法二:
set(b)|set(a)
#方法三:
c = {}.fromkeys(a+b).keys()
#方法四:
c=[]
for i in a+b:
if i not in c:
c.append(i)
c
2020.06.24