机器学习代码基础(2)--NumPy速成

1.2 NumPy速成

numpy为scipy提供了基本的数据结构和运算,其中最主要的是ndarray多维数组,它提供了高效的适量运算功能。

1.2.1创建数组

#根据列表创建数组
import numpy as np
myarray = np.array([1,2,3])
print(myarray)
print(myarray.shape)

#创建多维数组
myarray = np.array([[1,2,3],[2,3,4],[3,4,5]])
print(myarray)
print(myarray.shape)

#创建特殊的数组
#0数组
array1 = np.zeros((5,5))
print(array1)
#1数组
array2 = np.ones((5,5))
print(array2)
#指定值的数组
array3 = np.full((5,5),100)
print(array3)
#单位数组
array4 = np.eye(5)
print(array4)

1.2.2访问数据

可以通过数组的下标访问某一行,也可以访问某一列。

print(myarray)
print(myarray[0])
print(myarray[-1])
print(myarray[:,2])
print(myarray[1,2])

1.2.3算术运算

使用Numpy的ndarray数组可以直接进行算术运算

(1) 向量与向量

import numpy as np
myarray1 = np.array([[1,2,3],[2,3,4],[3,4,5]])
myarray2 = np.array([[11,21,32],[21,31,41],[31,41,51]])
print(myarray1 + myarray2)
print(myarray1 - myarray2)
print(myarray2 * myarray1)
print(myarray1 / myarray2)

(2) 向量与标量

print(myarray1 + 2)
print(myarray1 - 2)
print(myarray1 * 2)
print(myarray1 / 2)

(3)矩阵相关

import numpy as np
import numpy.linalg as lg
a = np.array([[-2,1],[4,-3]])
print(a.transpose())
print(lg.inv(a))
print(np.dot(a,lg.pinv(a)))

(4)数组的形状改变与堆叠

数组形状的改变:使用Numpy,我们可以方便的更改数组的形状,比如使用reshape()、flatten()函数等。

import numpy as np
a = np.arange(10)
print(a)
b = a.reshape(2,5)
print(b)
c = b.flatten()
print(c)

(5)数组堆叠

从深度看,数组既可以横向叠放,也可以竖向叠放。因此,我们我们对数组进行堆叠,Numpy数组对堆叠包含以下几个函数:hstack(),vstack()

import numpy as np
a = np.random.rand(3,3)
b = np.ones((3,1))
c = np.hstack((b,a))
print(c)

b = np.ones((1,3))
c = np.vstack((b,a))
print(c)
posted @ 2020-01-19 10:45  泰初  阅读(384)  评论(0编辑  收藏  举报