Python——Numpy基础

文章目录

  • 前言
    • 1.numpy基本结构
      • (1)用numpy读取数据
      • (2)numpy.array()
    • 2.Numpy矩阵基础
      • (1)numpy中的计算
      • (2)ndarray.astype()
    • 3.Numpy常用函数
      • (1)定义初始矩阵
      • (2)随机模块
      • (3)一些数学运算
    • 4.矩阵常用操作
      • (1)矩阵指数和根号计算
      • (2)矩阵变化
      • (2)矩阵拼接
      • (3)矩阵切分


前言

Python中Numpy是做矩阵运算的库,拥有丰富的数组计算函数。

1.numpy基本结构

(1)用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))#打印函数的帮助文档

(2)numpy.array()

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              

2.Numpy矩阵基础

(1)numpy中的计算

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)

(2)ndarray.astype()

ndarray.astype()可以转换数据类型

vector = numpy.array(["1","2","3"])
print(vector.dtype)
print(vector)
vector = vector.astype(float)
print(vector.dtype)
print(vector)

3.Numpy常用函数

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结束

(1)定义初始矩阵

#定义一个全为0的3*4的二维矩阵
np.zeros((3,4))

#定义一个全为1的三维矩阵
np.ones((2,3,4),atype=np.int32)#atype=np.int32定义元素类型

(2)随机模块

#随机产生一个2*3的二维矩阵
np.random.random((2,3))

(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)

4.矩阵常用操作

(1)矩阵指数和根号计算

import numpy as np
B = np.arange(3)
print(np.exp(B))   #B中每一个元素进行指数计算,exp表示e
print(np.sqrt(B))  #B中每一个元素取根号

(2)矩阵变化

a = np.floor(10*np.random.random((3,4)))  #np.floor是表示向下取整

#把矩阵变成一个向量
print(a.ravel())
a.shape(6,2)  #变成一个6*2的矩阵
a.T           #求转置

(2)矩阵拼接

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表示竖着拼

(3)矩阵切分

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,(34))) #指定切分,在3和4切

a = np.floor(10*np.random.random((12,2)))  #np.floor是表示向下取整
print (np.vsplit(a,3))

你可能感兴趣的:(Python,python,numpy)