机器学习 番外篇 01 numpy基础

numpy基础

1 numpy.array基础

import numpy
numpy.__version__
>>> '1.14.0'
import numpy as np
np.__version__
>>>  '1.14.0'

python list 的特点

L=[i for i in range(10)]
L
>>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
L[5]="machine learing"
L
>>>[0, 1, 2, 3, 4, 'machine learing', 6, 7, 8, 9]
import array

i表示int类型

arr=array.array('i',[i for i in range(10)])
arr
>>>array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

没有将array,list看成是向量或矩阵

numpy.array

nparr=np.array([i for i in range(10)])
nparr
>>>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
nparr[5]=100
nparr
>>>array([  0,   1,   2,   3,   4, 100,   6,   7,   8,   9])
nparr.dtype
>>>dtype('int64')
nparr[2]=3.15
nparr
>>>array([  0,   1,   3,   3,   4, 100,   6,   7,   8,   9])
nparr2=np.array([1,2,4.0])
nparr2
nparr2.dtype
>>>dtype('float64')
nparr2
>>>array([1., 2., 4.])
# 创建0元素的数组
np.zeros(10)
>>>array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros(10,dtype=int)
>>>array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
np.zeros((3,5))
>>>array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])
np.zeros(shape=(4,5),dtype=int)
>>>array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
np.ones((2,2))
>>>array([[1., 1.],
       [1., 1.]])
np.full((3,5),6)
>>>array([[6, 6, 6, 6, 6],
       [6, 6, 6, 6, 6],
       [6, 6, 6, 6, 6]])
np.full(shape=(6,6),fill_value=666)# 参数的顺序可以改变
>>>array([[666, 666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666, 666],
       [666, 666, 666, 666, 666, 666]])
# arange
[i for i in range(0,20,2)]# 步长不能为小数
>>>[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
np.arange(0,20,3)
>>>array([ 0,  3,  6,  9, 12, 15, 18])
np.arange(0,1,0.2)
>>>array([0. , 0.2, 0.4, 0.6, 0.8])
np.arange(5)
>>>array([0, 1, 2, 3, 4])
# linspace
np.linspace(0,20,10)# 截出10个元素
>>>array([ 0.        ,  2.22222222,  4.44444444,  6.66666667,  8.88888889,
       11.11111111, 13.33333333, 15.55555556, 17.77777778, 20.        ])
np.linspace(0,20,11)
>>>array([ 0.,  2.,  4.,  6.,  8., 10., 12., 14., 16., 18., 20.])
# random
np.random.randint(0,10)
>>>8
np.random.randint(0,10,10)# 生成10个[0,10)的随机数
>>>array([6, 2, 7, 4, 2, 1, 1, 7, 7, 4])
np.random.randint(4,9,size=10)
>>>array([7, 4, 8, 4, 4, 4, 7, 4, 4, 7])
np.random.randint(4,9,size=(3,5))
>>>array([[4, 7, 5, 6, 6],
       [4, 6, 7, 6, 4],
       [4, 4, 5, 8, 6]])
np.random.seed(6)# 使用随机种子,产生的随机数相同
np.random.random()# 产生0~1之间的浮点数
>>>0.8928601514360016
np.random.random(10)# 产生0~1之间的浮点数
>>>array([0.33197981, 0.82122912, 0.04169663, 0.10765668, 0.59505206,
       0.52981736, 0.41880743, 0.33540785, 0.62251943, 0.43814143])
np.random.normal()# 产生一个符合正态分布的浮点数
>>>0.13190913168862628
np.random.normal(10,100)# 产生一个符合正态分布的浮点数,均值为10,方差为100
>>>194.91379342853702
np.random.normal(10,100,(3,5))# 产生一个符合正态分布的浮点数,均值为10,方差为100
>>>array([[110.32013548, 109.0612575 , -12.8518833 ,  97.72277752,
         73.47231678],
       [ 99.87929919, 111.60132734, -95.44873895,  21.50591101,
         -0.67899673],
       [ 60.51712833,  80.73411267, -82.14649876, 106.35626305,
        176.72475576]])
# 查询方法参数
np.random.normal?

猜你喜欢

转载自blog.csdn.net/lihaogn/article/details/81295806