科学计算库Numpy-常用函数

简介: 科学计算库Numpy-常用函数

假定所有操作都事先导入numpy库


import numpy as np


1、平方根和次方根


B = np.array([0, 1, 2])
print(B)
print('----------')
#计算e的次方
print(np.exp(B))
print('----------')
#计算次方根
print(np.sqrt(B))


结果为:


[0 1 2]
----------
[ 1.          2.71828183  7.3890561 ]
----------
[ 0.          1.          1.41421356]


2、向下取整


a = np.floor(10 * np.random.random((3, 4)))
print(a)
1
2


结果为:


[[ 6.  8.  1.  7.]
 [ 2.  2.  2.  7.]
 [ 7.  1.  5.  7.]]


3、矩阵与向量的相互转换和矩阵的转置


print(a.ravel())
print('----------')
#向量转换为矩阵
a.shape = (6, 2)
print(a)
print('----------')
#矩阵转置
print(a.T)


结果为:


[ 6.  8.  1.  7.  2.  2.  2.  7.  7.  1.  5.  7.]
----------
[[ 6.  8.]
 [ 1.  7.]
 [ 2.  2.]
 [ 2.  7.]
 [ 7.  1.]
 [ 5.  7.]]
----------
[[ 6.  1.  2.  2.  7.  5.]
 [ 8.  7.  2.  7.  1.  7.]]


4、矩阵的拼接


a = np.floor(10 * np.random.random((2, 2)))
b = np.floor(10 * np.random.random((2, 2)))
print(a)
print('----------')
print(b)
print('----------')
#按行拼接
print(np.vstack((a, b)))
print('----------')
#按列拼接
print(np.hstack((a, b)))


结果为:


[[ 0.  9.]
 [ 8.  0.]]
----------
[[ 5.  9.]
 [ 1.  3.]]
----------
[[ 0.  9.]
 [ 8.  0.]
 [ 5.  9.]
 [ 1.  3.]]
----------
[[ 0.  9.  5.  9.]
 [ 8.  0.  1.  3.]]


5、矩阵的切分


a = np.floor(10 * np.random.random((2, 12)))
print(a)
print('----------')
#按列把a平均切成2份
print(np.hsplit(a, 2))
print('----------')
#按行把a平均切成2份
print(np.vsplit(a, 2))
print('----------')
#在特定位置进行切分(第3列和第7列)
print(np.hsplit(a, (3, 7)))


结果为:


[[ 8.  2.  7.  4.  0.  7.  8.  0.  7.  2.  7.  6.]
 [ 2.  1.  7.  8.  6.  6.  1.  4.  4.  8.  3.  7.]]
----------
[array([[ 8.,  2.,  7.,  4.,  0.,  7.],
       [ 2.,  1.,  7.,  8.,  6.,  6.]]), array([[ 8.,  0.,  7.,  2.,  7.,  6.],
       [ 1.,  4.,  4.,  8.,  3.,  7.]])]
----------
[array([[ 8.,  2.,  7.,  4.,  0.,  7.,  8.,  0.,  7.,  2.,  7.,  6.]]), array([[ 2.,  1.,  7.,  8.,  6.,  6.,  1.,  4.,  4.,  8.,  3.,  7.]])]
----------
[array([[ 8.,  2.,  7.],
       [ 2.,  1.,  7.]]), array([[ 4.,  0.,  7.,  8.],
       [ 8.,  6.,  6.,  1.]]), array([[ 0.,  7.,  2.,  7.,  6.],
       [ 4.,  4.,  8.,  3.,  7.]])]


6、变量赋值


#①赋ID,共用同一个ID,两者除变量名不同外完全相同
a = np.arange(12)
b = a
print(a is b)
b.shape = 3, 4
print(a.shape)
print(id(a))
print(id(b))
print('----------')
#②浅复制,不同的ID,但共用一组数据
c = a.view()
print(c is a)
c.shape = 2,6
print(a.shape)
c[0, 4] = 1234
print(a)
print(id(a))
print(id(c))
print('----------')
#③深复制,两个变量完全独立,相互无影响
d = a.copy()
print(a is d)
d[0, 0] = 999
print(a)
print(id(a))
print(id(d))


结果为:


True
(3, 4)
1981659786576
1981659786576
----------
False
(3, 4)
[[   0    1    2    3]
 [1234    5    6    7]
 [   8    9   10   11]]
1981659786576
1981659737904
----------
False
[[   0    1    2    3]
 [1234    5    6    7]
 [   8    9   10   11]]
1981659786576
1981659786336


7、最值


data = np.sin(np.arange(20)).reshape(5,4)
print(data)
print('----------')
#按列返回最大值的索引
ind = data.argmax(axis = 0)
print(ind)
print('----------')
data_max = data[ind, range(data.shape[1])]
print(data_max)


结果为:


[[ 0.          0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155   0.6569866 ]
 [ 0.98935825  0.41211849 -0.54402111 -0.99999021]
 [-0.53657292  0.42016704  0.99060736  0.65028784]
 [-0.28790332 -0.96139749 -0.75098725  0.14987721]]
----------
[2 0 3 1]
----------
[ 0.98935825  0.84147098  0.99060736  0.6569866 ]


8、矩阵扩充


a = np.arange(0, 40, 10)
print(a)
#将矩阵扩充为2行2列,每个元素的值都为a
b = np.tile(a, (2, 2))
print(b)


结果为:


[ 0 10 20 30]
[[ 0 10 20 30  0 10 20 30]
 [ 0 10 20 30  0 10 20 30]]


9、排序


a = np.array([[4, 3, 5],[1, 2, 1]])
print(a)
print('----------')
#按行进行顺序排序
b = np.sort(a, axis = 1)
print(b)
#等同于
#a.sort(axis = 1)
#print(a)
print('----------')
a = np.array([5, 3, 1, 2])
#返回顺序排序后的元素索引值
j = np.argsort(a)
print(j)
print('----------')
#进行顺序排序
print(a[j])


结果为:


[[4 3 5]
 [1 2 1]]
----------
[[3 4 5]
 [1 1 2]]
----------
[2 3 1 0]
----------
[1 2 3 5]


相关文章
|
22天前
|
存储 机器学习/深度学习 数据处理
NumPy:从初识到实战,探索Python科学计算的无限可能
NumPy:从初识到实战,探索Python科学计算的无限可能
40 0
|
22天前
|
机器学习/深度学习 存储 算法
Python中的NumPy库:数值计算与科学计算的基石
【2月更文挑战第29天】NumPy是Python科学计算的核心库,专注于高效处理大型多维数组和矩阵。其核心是ndarray对象,提供快速数组操作和数学运算,支持线性代数、随机数生成等功能。NumPy广泛应用于数据处理、科学计算和机器学习,简化了矩阵运算、统计分析和算法实现,是数据科学和AI领域的重要工具。
|
22天前
|
数据采集 机器学习/深度学习 存储
【机器学习】数据清洗——基于Numpy库的方法删除重复点
【机器学习】数据清洗——基于Numpy库的方法删除重复点
97 1
|
22天前
|
数据采集 机器学习/深度学习 数据可视化
深入学习NumPy库在数据分析中的应用场景
深入学习NumPy库在数据分析中的应用场景
|
22天前
|
存储 索引 Python
请解释Python中的NumPy库以及它的主要用途。
【2月更文挑战第27天】【2月更文挑战第97篇】请解释Python中的NumPy库以及它的主要用途。
|
15天前
|
搜索推荐 索引 Python
【科学计算包NumPy】NumPy数组的基本操作
【科学计算包NumPy】NumPy数组的基本操作
37 3
|
15天前
|
机器学习/深度学习 开发者 Python
【科学计算包NumPy】NumPy数组的创建
【科学计算包NumPy】NumPy数组的创建
35 4
|
8天前
|
存储 并行计算 数据挖掘
Python中的NumPy库:科学计算与数据分析的基石
Python中的NumPy库:科学计算与数据分析的基石
63 0
|
22天前
|
Python
科学计算中的NumPy应用案例分享
【4月更文挑战第17天】本文介绍了NumPy在科学计算中的应用,包括使用NumPy的线性代数函数求解线性方程组、利用`trapz`函数进行数值积分以及结合`scipy.signal`进行信号滤波。这些案例展示了NumPy在处理实际问题时的实用性和灵活性,突显了其在Python科学计算领域的重要地位。
|
22天前
|
数据处理 C语言 索引
使用NumPy进行科学计算:基础与进阶
【4月更文挑战第9天】NumPy是数据处理和科学计算的核心工具,提供高性能的多维数组对象和数学函数库。本文深入讲解NumPy的基础和进阶技巧,包括ndarray的向量化操作、广播机制、ufunc、高级索引以及线性代数操作。通过示例展示如何利用NumPy进行高效计算,强调性能优化,帮助读者提升科学计算能力。

相关实验场景

更多