python第三方库numpy-python第三方库之numpy基础

前言

numpy是python的科学计算模块,底层实现用c代码,运算效率很高。numpy的核心是矩阵narray运算。

narray介绍

矩阵拥有的属性

ndim属性:维度个数

shape属性:维度大小

dtype属性:数据类型

常用矩阵创建方法

import numpy as np

# 由列表转化

np.array([[1,2],[3,4]])

# 创建多维随机浮点数矩阵,区间0.0 ~ 1.0

arr = np.random.rand(3, 4)

# 创建多维整数矩阵,指定随机区间

arr = np.random.randint(-1, 5, size = (3, 4))

# 创建多维随机浮点数矩阵,指定区间

np.random.uniform(-1, 5, size = (3, 4))

# 创建全是0的矩阵

np.zeros((3,4))

# 仿照一个矩阵的形状和类型创建0矩阵

np.zeros_like([3,4])

# 创建1的矩阵

np.ones((3,4))

#仿照一个矩阵的形状和类型创建1矩阵

np.ones_like((3,4))

# 创建随机值

np.empty((3,4))

# 对原来矩阵打乱顺序

np.random.shuffle(arr)

常用基础运算方法

如果python代码中有很多涉及数学运算的操作,使用numpy是一种很好的提高运算效率的方法。

import numpy as np

np.sum() # 计算矩阵元素的和

np.mean() # 计算平均值

np.e # 自然数e

np.pi # 自然数π

np.abs() # 计算绝对值,可以是数组

np.std(li) # 计算标准差

np.var() # 计算方差

np.max() # 计算最大值

np.min() # 计算最小值

np.cov(a,b) # 计算协方差,得到矩阵,去[0,1]或[1,0]位置的为协方差

np.alen(a) # 计算矩阵的长度,多维矩阵计算第一列的长度,即列数

np.argmax() # 返回最大索引下标值

np.argmin() # 返回最小索引下标值

np.ceil(): # 向上最接近的整数,参数是 number 或 array

np.floor(): # 向下最接近的整数,参数是 number 或 array

np.rint(): # 四舍五入,参数是 number 或 array

np.isnan(): # 判断元素是否为 NaN(Not a Number),参数是 number 或 array,返回布尔矩阵

np.multiply(arr1, arr2): # 对应元素相乘,参数是 number 或 array

np.divide(arr1, arr2): # 元素相除,参数是 number 或 array

np.where(condition, x, y): # 三元运算符,x if condition else y

np.any(): # 至少有一个元素满足指定条件,返回True

np.all() # 所有的元素满足指定条件,返回True

np.unique() # 去除重复值并返回上升的排序结果

v = np.who({'aaa':arr1}) # 打印arr的相关属性

矢量的加减乘

arr1 = np.random.randint(0,10,size=(3,4))

print(arr1*arr1) # 相对应元素相乘

print(arr1+arr1) # 对应元素相加

print(arr1-arr1) # 对应元素相减

布尔判断

arr1 = np.random.randint(0,10,size=(2,3))

print(arr1 < 5)

[[False False False]

[False True False]]

矩阵转换

# 多维使用数字表示维数,0,1,2,3代表四维

arr = np.random.rand(2,3) # 2x3 数组

print(arr.transpose()) # 转换为 3x2 数组,默认规则行列交换

arr.transpose((3,2,1,0)) # 行和列交换

arr1 = arr.T # 行列交换

# 从原来矩阵按规则产生新矩阵

np.take()

>>> a = [4, 3, 5, 7, 6, 8]

>>> indices = [0, 1, 4]

>>> np.take(a, indices)

array([4, 3, 6])

>>> np.take(a, [[0, 1], [2, 3]])

array([[4, 3],

[5, 7]])

# 在不改变数据的情况下改变矩阵形状

np.reshape()

>>> np.reshape(a, (2, 3))

array([[0, 1, 2],

[3, 4, 5]])

# 数据复制

np.repeat()

>>> np.repeat(3, 4)

array([3, 3, 3, 3])

读取数据文件

从txt文件中加载矩阵数据。

data_array = np.loadtxt(filename, # 文件名

delimiter=',', # 分隔符

dtype=int, # 数据类型,指的是生成的矩阵的数据类型

usecols=(0,1)) # 指定读取的列号

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值