Python中Numpy是做矩阵运算的库,拥有丰富的数组计算函数。
import numpy
world_alcohlol = numpy.genfromtxt("world_alcohol.txt",delimiter=",",dtype=str)
#genfromtxt()是numpy库中读入数据,第一个参数是数据的路径和名称,第二个参数是以什么分割符分开,第三个参数是以什么方式读入
print(type(world_alcohlol))#打印出当前的变量是什么结构
print(world_alcohlol)#打印出变量
print(help(numpy.genfromtxt))#打印函数的帮助文档
numpy.array()构造的内容一定是相同的结构。
vector = numpy.array([5,10,15,20])#创建一个一维的向量
matrix = numpy.array([[5,10,15],[20,25,30],[35,32,31]])#创建一个二维的数组,构造三维用三个中括号
print (vector)
print (matrix)
#.shape是观察数组的结构的
print(vector.shape)
print(matrix.shape)
#.dtype是查看变量里面是什么类型
vector.dtype
#取变量中的某一数据
matrix = numpy.array([
[5,10,15],
[20,25,30],
[35,32,31]
])
a = matrix[1,2]#取得是第二行第三个数,结果为30
print(vector[0:3])#切片,是左闭右开的,结果是5,10,15
import numpy
vector = numpy.array([5,10,15,20])
vector == 10#"=="是判断是否相等,结果:array([False, True, False, False])
# &是表示与运算,两者都必须满足;|是表示或运算,两者满足一个即可
a = (vector == 10) & (vector == 5)
b = (vector == 10) | (vector == 5)
#求最小值
vector.min()
matrix = numpy.array([
[5,10,15],
[20,25,30],
[35,32,31]
])
#按行求和
matrix.sum(axis=1)
#按列求和
matrix.sum(axis=0)
ndarray.astype()可以转换数据类型
vector = numpy.array(["1","2","3"])
print(vector.dtype)
print(vector)
vector = vector.astype(float)
print(vector.dtype)
print(vector)
import numpy as np
print (np.arange(15))#产生0到14的向量
a = np.arange(15).reshape(3,5)#把向量变成3行5列的矩阵
a
a.ndim #看矩阵的维度
a.size #看有多少元素
np.arange(10,30,5)#表示从10开始,每次加5,要小于30
from numpy import pi
np.linspace(0,2*pi,100)#产生100数,从0开始,2*pi结束
#定义一个全为0的3*4的二维矩阵
np.zeros((3,4))
#定义一个全为1的三维矩阵
np.ones((2,3,4),atype=np.int32)#atype=np.int32定义元素类型
#随机产生一个2*3的二维矩阵
np.random.random((2,3))
#随机产生一个2*3的二维矩阵
a = np.array([20,30,40,50])#向量
b = np.arange(4)#0,1,2,3
c = a-b #对应位置相减
c = c-1 #每个数都减1
b**2 #**代表乘方
#矩阵的乘法
A = np.array([1,1],[0,1])
B = np.array([2,0],[3,4])
A*B #对应位置相乘
A.dot(B)#矩阵的乘法,也可以np.dot(A,B)
import numpy as np
B = np.arange(3)
print(np.exp(B)) #B中每一个元素进行指数计算,exp表示e
print(np.sqrt(B)) #B中每一个元素取根号
a = np.floor(10*np.random.random((3,4))) #np.floor是表示向下取整
#把矩阵变成一个向量
print(a.ravel())
a.shape(6,2) #变成一个6*2的矩阵
a.T #求转置
stack表示拼接
import numpy as np
a = np.floor(10*np.random.random((2,2))) #np.floor是表示向下取整
b = np.floor(10*np.random.random((2,2)))
print (np.hstack((a,b))) #h表示横着拼,np.vstack表示竖着拼
split表示分
import numpy as np
a = np.floor(10*np.random.random((2,12))) #np.floor是表示向下取整
print (np.hsplit(a,3)) #h表示行分,分成3份
print (np.hsplit(a,(3,4))) #指定切分,在3和4切
a = np.floor(10*np.random.random((12,2))) #np.floor是表示向下取整
print (np.vsplit(a,3))