Numpy概述
1.使用numpy打开txt文件并且读取文件内容
world_alcohol = np.genfromtxt("world_alcohol.txt", delimiter=",", dtype=str),参数一:文件路径;参数二:分割标记;参数三:数据类型;
import numpy as npworld_alcohol = np.genfromtxt("world_alcohol.txt", delimiter=",", dtype=str)
print (world_alcohol)
2.使用numpy构建一维矩阵
vector = np.array([1, 2, 3, 4, 5])
print (vector)
3.使用numpy构建二维矩阵
matrix = np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9]])
print (matrix)
4.使用numpy查看结构
matrix = np.array([[1, 2, 3], [4, 5, 6],[7, 8, 9]])
print (matrix.shape) // (3 ,3)
5.使用numpy需要保证array中的数据类型一致
6.numpy的数据索引与切片操作同python一样
7.numpy.array选入某一行或者列所有元素,可以使用( : ) 来代替所有行或者列,也可以通过切片操作取得多行或者列
#取出所有行中的第1个元素,元素从0开始
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print (matrix[:, 1]) // 2 5 8
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print (matrix[:, 0:2])
8.numpy修改数据类型,可以通过astype来修改
matrix = np.array(["1", "2", "3"])
print (matrix)
print (matrix.dtype)
matrix = matrix.astype(float)
print (matrix)
print (matrix.dtype)
9.NumPy中的维度(dimension)、轴(axis)、秩(rank)的含义
数值计算
1.numpy获取极值,min最小 , max 最大
matrix = np.array([1, 2, 3])
print matrix.max()
print matrix.min()
2.numpy矩阵行求和使用sum(axis = 1) ,列求和sum(axis = 0)
matrix = np.array([[1, 2, 3], [4, 5, 6]])
#把矩阵中所有元素逐个相加
p0 = matrix.sum()
#指定操作沿着什么轴(纬度) 0,是竖向,1,是横向p1 = matrix.sum(axis=0)p2 = matrix.sum(axis=1)print p1print p2
3.numpy矩阵乘积操作
matrix = np.array([[1, 2, 3], [4, 5, 6]])
p1 = matrix.prod()
print (p1)
4.取得值的索引
matrix = np.array([[1, 2, 3], [4, 5, 6]])
p1 = matrix.argmin()
print (p1)
p2 = matrix.argmax()
print (p2)
5.标准差
matrix = np.array([[1, 2, 3], [4, 5, 6]])
p1 = matrix.std()
print (p1)
6.方差
matrix = np.array([[1, 2, 3], [4, 5, 6]])
p1 = matrix.var()
print (p1)
7.截断操作
#截断操作,给定边界,不满足条件的补足
matrix = np.array([[1, 2, 3], [4, 5, 6]])
p1 = matrix.clip(2,4)
print (p1)
8.四舍五入
matrix = np.array([1.2,3.56,6.41])
p1 = matrix.round()
print (p1)
#round()中可以传入参数,表示精确到小数点后多少位
p2 = matrix.round(1)
print(p2)
9.排序操作
matrix = np.array([[1.2,3.56,6.41],[5.32,6.58,7.89]])
#默认升序
np.sort(matrix)
10.数据插入指定区间,返回插入的索引结果
#将数据插入指定区间
matrix = np.linspace(0,10,10)
values = np.array([2.5,5.5,9.5])
np.searchsorted(matrix,values)
11.指定格式的升序降序
#负数引导为降序,默认升序
index = np.lexsort([-1]*tag_array[:,0],tag_array[:,2])
12.删除指定行或者指定列
删除一行
import numpy as np
list_data = [[1,2,3],[2,3,4],[4,5,6],[9,8,7]] # 可以为numpy数据
delete_data = np.delete(list_data , 2, axis=0) # 删除第3列 axis用于控制行列
删除一列
import numpy as np
list_data = [[1,2,3],[2,3,4],[4,5,6],[9,8,7]] # 可以为numpy数据
delete_data = np.delete(list_data , 1, axis=1) # 删除第2行 axis用于控制行列
数组形状
1.根据指定格式拆分
matrix = np.arange(10)
print(matrix)
#按照格式拆分
matrix.shape = 2,5
print(matrix)
#重新按照指定格式拆分,拆分需要按照实际格式来拆分
matrix.reshape(1,10)
print(matrix)
2.增加新的维度
matrix = np.arange(10)
print(matrix.shape)
matrix = matrix[np.newaxis,:]
print(matrix.shape)
3.自动压缩删除没有数据的维度
matrix = np.arange(10)
print(matrix.shape)
matrix = matrix[:,np.newaxis,np.newaxis]
print(matrix.shape)
matrix = matrix.squeeze()
print(matrix.shape)
矩阵操作
1.numpy构造向量,并且转换为自定义的矩阵形式
// 0 - 15 的向量
matrix = np.arange(15)
print matrix// 3 x 5 的矩阵
mat = matrix.reshape(3, 5)
print mat
2.numpy初始化零矩阵
mat = np.zeros((3, 4))
print mat
3.numpy构建全一矩阵,并且指定数据类型
p1 = np.ones((2, 3, 4), dtype=np.int32)
print p1
4.numpy构建等差数列
#解释:从10 - 30 每个数加5,最大数要小于30
p1 = np.arange(10, 30, 5)
print p1
5.numpy构建随机矩阵,使用random
// 随机3 x 4矩阵 ,默认 0 - 1之间
p1 = np.random.random((3, 4))
print p1
6.numpy构建给定某个区间,等间隔取到n个值
from numpy import pi
p1 = np.linspace(0, 2 * pi ,100)
print p1
7.矩阵的相关操作
p1 = np.array([[1, 2], [3, 4]])
p2 = np.array([[5, 6], [7, 8]])
- 对矩阵每个元素进行平方操作
print p1**2
- 对矩阵进行加法操作
print p1 + p2
- 对矩阵进行 * 号,对应位置相乘
print p1 * p2
- 矩阵乘法
print p1.dot(p2)print np.dot(p1, p2)
矩阵转置
matrix = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(matrix)
# .T也表示转置
matrix = matrix.transpose()
print(matrix)
8.数据填充
import numpy as npmat = np.array([1, 2, 3])
mat.fill(0)
print(mat)
9.显示矩阵纬度
import numpy as npmat = np.array([[1, 2, 3], [4, 5, 6]])print(mat.ndim)
10.行列式计算
3 * 4 - 1 * 2 行列式
from numpy import *A = array([[3, 1], [2, 4]])B = linalg.det(A)print(B)