【Python】NumPy 数组计算模块

NumPy为数据分析三剑客之一,主要用于数组计算、矩阵运算和科学计算。

本章运用了大量的示意图,用例简单,力求使您能够轻松地融入NumPy的学习中。通过典型案例,让您充分理解NumPy、应用NumPy。

1.1安装

pip install numpy

NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),它们都可以用于处理行列表示的数组元素,虽然它们看起来很相似,但是在这两种数据类型上执行相同的数学运算,可能得到不同的结果。

1.2 array数组

1.2.1基本的创建

import numpy as np

np.array([1,2,3])                     # 创建一个一维数组
np.array([[1,2,3],[1,2,3]])           # 创建一个二维数组
np.array([1,2,3],dtype=np.float64)    # 指定为浮点数类型

n3 = np.array([1,2,5],dtype='float64')  # copy = True 代表深拷贝 反之 浅拷贝
np.array(n3,copy = True)

np.array([1,2,3],ndmin=3)               # 指定了最小维数为3,即至少为三位数组。

1.3 matrix 矩阵

1.3.1基本的创建

import numpy as np

# 使用np.mat()函数进行创建: 
np.mat([[1,2,3],[3,4,5],[5,6,7]])

# 以0填充 3行三列矩阵
np.mat(np.zeros([3,3]))

# 创建对角矩阵使用diag() 函数 
np.mat(np.diag([1,2,3]))

1.4基础案例

# 1.生成一个1,100之间的等差数列,数组长度为10?
np.linspace(1, 100, 10, dtype="int")

# 2.生成一个等差数列,公差为5,起始值为0,结束值小于30?
arr = np.arange(0, 30, 5)

# 3.生成一个等比数列,公比为4,长度为5?
arr= np.logspace(start=0, stop=3,num=5 , base=4, endpoint=True)

# 4. 创建一个3*3的数组,九宫格的中间位置值为1,其余值为0。再创建一个3*3的正太分布数组(期望为5,标准差为2),将正太分布数组中间位置的值保留,其余值设置为0.
arr = np.zeros((3, 3))
arr[1][1] = 1
arr = np.random.normal(loc=5, scale=2, size=(3, 3))
arr = np.where( arr== arr[1,1], arr, 0)

# 5.创建一个2行3列的正太分布的数组arr1,创建一个2行4列的随机数组arr2?
arr1 = np.random.randn(2,3)
arr2 = np.random.rand(2, 4)
arr3 = np.zeros((4,3))
# vstack: 垂直, hstck:水平 
res_01 = np.hstack((arr1, arr2))
res_02 = np.vstack((arr1, arr3))
res_02

# 6.删除arr3的第2行?
np.delete(arr3, 3, axis=0)

# 7.使用两种方法求arr2的转置?
arr2.T
arr2.transpose()

# 8.生成一组[5,15]之间的5行4列的随机浮点型数据,并将小于10的数据设置为0,其余数据保留
arr = np.random.rand(5, 4)* 10 + 5
arr = np.where(arr > 10, arr, 0)

# 9.生成一个对角线矩阵,要求对角线上的值为长度为5,公差为2的等差数列;
arr = np.arange(1, 10, 2)
mat_1 = np.mat( np.diag(arr) )
mat_1

# 10.已知数组A和数组B,将数组AB合并成数组C;
# C矩阵
matrix([[ 1,  2,  5,  6],
        [ 3,  4,  7,  8],
        [ 1,  2,  9, 10],
        [ 3,  4,  5,  6],
        [ 1,  2,  7,  8],
        [ 3,  4,  9, 10]])

A = np.mat([[1,2], [3,4]])
B = np.mat([[5,6], [7,8], [9, 10]])
res_A = np.vstack((A,A,A))
res_B = np.vstack((B, B))
res = np.hstack((res_A, res_B))

1.5小结

通过本章的学习,能够掌握NumPy的常用操作,即从数组创建到数组的基本操作和运算。对于数据统计分析来说,这些内容已经差不多了;而对于人工智能、机器学习,还需要更加深入地学习NumPy相关知识。另外,当数据量非常大时,NumPy可以带来百倍以上的速度提升。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值