通过本次学习你可以掌握Numpy
numpy的主要对象是同质多维数组。也就是在一个元素(通常是数字)表中,元素的类型都是相同的。
numpy的数组类被成为ndarray。别名为array。numpy.array与标准python库类array.array不一样,标准库类中的那个只能处理一维数组并且功能更少。
例如ndarray为矩阵
关于维数和类型操作:
ndarray.ndim 数组的轴(维度)的数量。
ndarray.shape: 数组的维度。
ndarray.size: 数组的元素的总个数。(m*n)
ndarray.dtype: 用来描述数组中元素类型的对象。
例子:
import numpy as np A = np.array([1,3,1])
B = np.array([[1],[2],[3]])
C = np.array([1,3,1],dtype= "float64")
print("""
数组A的维度数为%s
数组A的维度为%s
数组A的元素总个数为%s
""" %(A.ndim ,B.shape ,A.size))
print("""
数组A的类型%s
数组C的类型%s
""" %(A.dtype ,C.dtype ))
结果:
关于生成特殊矩阵操作:
zeros() 元素全部为0
ones() 元素全为1
arange(起始,结束,步长)
linspace(起始,结束,元素个数)
为了生成数字序列。numpy提供一个类似于arange的函数,返回一个列表,参数为(起始,结束,步长)
函数linspace是一个更好的选择,因为我们可以对该函数指定需要创建多少个元素,参数为(起始,结束,元素个数)
例子:
__author__ = "WSX" import numpy as np A = np.zeros((3,3))
B = np.ones((3,3))
C = np.arange(1.0,5,2.1)
D = np.linspace(1,5,4)
print("""
生成的A为:\n%s
生成的B为:\n%s
生成的C为:\n%s
生成的D为:\n%s
""" %(A,B,C,D))
结果:
关于reshape的使用:
A= np.array([1,2,3,4,5,6,7,8,9])
B= np.array([1,2,3,4,5,6,7,8,9,10,11,12])
print("A(3,3)\n", A.reshape(3,3)) #二维矩阵
print("B(1,9)\n",A.reshape(1,9)) #二维矩阵
print("B(2,2,3)\n",B.reshape(2,2,3)) #三维矩阵
结果:
关于矩阵的运算:
在数组上的算术操作符是逐元素的得到的是一个重新创建的数组,然后将结果写入新数组中:
numpy中乘积操作符×是逐元素进行的
矩阵的积可以通过使用dot 函数
(待续。。。)