scipy科学计算库简单入门

版权声明:转载需声明原创来源;如有疑问请联系qq3048871766 https://blog.csdn.net/AcSuccess/article/details/87982793

安装scipy科学计算子库

pip install --user numpy
pip install --user scipy
pip install --user matplotlib
pip install --user pandas

numpy建立范例

>>> import numpy as np
>>> np.array([1,2,3])
array([1, 2, 3])
>>> np.array([(1,2,3),(4,5,6)])
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.arange(1,5,1)
array([1, 2, 3, 4])
>>> np.random.random(4)
array([0.8022095 , 0.99891284, 0.70421515, 0.98077385])
>>> np.random.random((4,3))
array([[0.75980422, 0.26687456, 0.14736679],
       [0.63221795, 0.8073523 , 0.46033724],
       [0.22438696, 0.65492275, 0.94701197],
       [0.76565891, 0.07619326, 0.69278667]])
>>> np.linspace(1,2,10)
array([1.        , 1.11111111, 1.22222222, 1.33333333, 1.44444444,
       1.55555556, 1.66666667, 1.77777778, 1.88888889, 2.        ])
>>> np.linspace(1,2,10,endpoint=False)#1到2个数为10的等差数列,endpoint指定需不需要最后的值
array([1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])
>>> np.ones([3,4])
array([[1., 1., 1., 1.],
       [1., 1., 1., 1.],
       [1., 1., 1., 1.]])
>>> np.zeros([2,2])
array([[0., 0.],
       [0., 0.]])
>>> np.fromfunction(lambda i,j:(i+1)*(j+1),(9,9))
array([[ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9.],
       [ 2.,  4.,  6.,  8., 10., 12., 14., 16., 18.],
       [ 3.,  6.,  9., 12., 15., 18., 21., 24., 27.],
       [ 4.,  8., 12., 16., 20., 24., 28., 32., 36.],
       [ 5., 10., 15., 20., 25., 30., 35., 40., 45.],
       [ 6., 12., 18., 24., 30., 36., 42., 48., 54.],
       [ 7., 14., 21., 28., 35., 42., 49., 56., 63.],
       [ 8., 16., 24., 32., 40., 48., 56., 64., 72.],
       [ 9., 18., 27., 36., 45., 54., 63., 72., 81.]])
#lambda只是一个表达式,函数体比def简单很多,很多时候定义def,然后写一个函数太麻烦,
#这时就可以用lambda定义一个匿名函数。,而不是一个代码块。
#仅仅能在lambda表达式中封装有限的逻辑进去。lambda表达式是起到一个函数速写的作用。
#允许在代码内嵌入一个函数的定义。
>>> x = np.random.random((2,3))
>>> x
array([[0.88577869, 0.1135244 , 0.76480849],
       [0.56365768, 0.86854828, 0.88952157]])
>>> x.ndim#秩
2
>>> x.shape#维度
(2, 3)
>>> x.size#元素个数
6
>>> aArray = np.array([(1,2,3),(4,5,6)])
>>> aArray
array([[1, 2, 3],
       [4, 5, 6]])
>>> print(aArray[0])
[1 2 3]
>>> print(aArray[0:2])#类似切片
[[1 2 3]
 [4 5 6]]
>>> print(aArray[0:1])
[[1 2 3]]
>>> print(aArray[:,[0,1]])#全部行,第0列和第1列
[[1 2]
 [4 5]]
>>> print(aArray[1,[0,1]])#第一行的0和1列
[4 5]
>>> print(aArray[0,[0,1]])
[1 2]
>>> bArray = aArray.reshape(3,2)
>>> bArray
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> aArray
array([[1, 2, 3],
       [4, 5, 6]])
>>> aArray.resize(3,2)
>>> aArray
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> bArray=np.array([1,3,7])
>>> bArray
array([1, 3, 7])
>>> cArray=np.array([3,5,8])
>>> np.vstack((bArray, cArray))#垂直方向上拼接
array([[1, 3, 7],
       [3, 5, 8]])
>>> np.hstack((bArray, cArray))#水平方向上拼接
array([1, 3, 7, 3, 5, 8])
>>> a = np.array([1,2,3])
>>> b = np.array([(1,2,3),(4,5,6)])
>>> a*b#利用广播思想进行运算
array([[ 1,  4,  9],
       [ 4, 10, 18]])
>>> b.sum(axis=1)#axis=0/1代表按行或列进行操作
array([ 6, 15])
>>> b.sum(axis=0)
array([5, 7, 9])
>>> b.argmax()#返回最大值的索引
5
>>> b.mean()#平均值
3.5
>>> b.var()#方差
2.9166666666666665
>>> b.std()#标准差
1.707825127659933

pandas.series示例

>>> from pandas import Series
>>> aser = Series([1,2.3,'ab'])
>>> aser
0      1
1    2.3
2     ab
dtype: object
>>> bser = Series(['apple', 'peach', 'lemon'],index=[1,2,3])#指定索引值
>>> bser
1    apple
2    peach
3    lemon
dtype: object
>>> bser.index
Int64Index([1, 2, 3], dtype='int64')
>>> bser.values
array(['apple', 'peach', 'lemon'], dtype=object)
#数据对齐
>>> from pandas import Series
>>> data = {'axp':100,'csco':122,'ba':99}
>>> sindex = ['axp','csco', 'ca', 'ba']
>>> aser = Series(data,index=sindex)
>>> aser
axp     100.0
csco    122.0
ca        NaN
ba       99.0
dtype: float64
#NaN为not a number的缩写,即为不存在
>>> Series.isnull(aser)
axp     False
csco    False
ca       True
ba      False
dtype: bool  
#Series的name属性
>>> aser
axp     100.0
csco    122.0
ca        NaN
ba       99.0
dtype: float64
>>> aser.index.name='gao'
>>> aser.name='ming'
>>> aser
gao
axp     100.0
csco    122.0
ca        NaN
ba       99.0
Name: ming, dtype: float64

构建dataframe

>>> import pandas as pd
>>> data = {'name':['wangdachui','liming','niuyun'],'pay':[4000,5000,6000]}
>>> frame = pd.DataFrame(data)
>>> frame
         name   pay
0  wangdachui  4000
1      liming  5000
2      niuyun  6000
>>> import numpy as np
>>> dat = np.array([('wangdachui',4000),('linling',5000),('niuyun',6000)])
>>> fra = pd.DataFrame(data,index=range(1,4),columns=['name','pay'])
>>> fra
         name   pay
1  wangdachui  4000
2      liming  5000
3      niuyun  6000
#一些属性
>>> import pandas as pd
>>> frame = pd.DataFrame(data,index=range(1,4),columns = ['name','pay'])
>>> frame
         name   pay
1  wangdachui  4000
2     linming  5000
3      niuyun  6000
>>> frame.index
RangeIndex(start=1, stop=4, step=1)
>>> frame.columns
Index(['name', 'pay'], dtype='object')
>>> frame.values
array([['wangdachui', '4000'],
       ['linming', '5000'],
       ['niuyun', '6000']], dtype=object)
#更改index的值
>>> frame.index=range(0,3)
>>> frame
         name   pay
0  wangdachui  4000
1     linming  5000
2      niuyun  6000
#dataframe的切片
>>> frame['pay']
0    4000
1    5000
2    6000
Name: pay, dtype: object
>>> frame.name
0    wangdachui
1       linming
2        niuyun
Name: name, dtype: object
>>> frame.iloc[1,1]
'5000'
>>> frame.iloc[0:3,1]
0    4000
1    5000
2    6000
Name: pay, dtype: object

原文链接 

猜你喜欢

转载自blog.csdn.net/AcSuccess/article/details/87982793