[python]Numpy快速入门

简介: NumPY是Python的一个矩阵处理库,提供了大量点矩阵处理函数,其内部通过C语言实现,执行速度快。1.一维NumPY数组使用NumPY提供的arange(n)函数可以创建一个包含n个元素的NumPY数组,取值分别为0~n-1.

NumPY是Python的一个矩阵处理库,提供了大量点矩阵处理函数,其内部通过C语言实现,执行速度快。

1.一维NumPY数组

使用NumPY提供的arange(n)函数可以创建一个包含n个元素的NumPY数组,取值分别为0~n-1.

>>> from NumPY import *
>>> a=arange(4)
>>> a
array([0, 1, 2, 3])
>>> a.shape
(4,)
>>> 

使用array()创建NumPY数组.

>>> mm=array((4,5,1))
>>> mm
array([4, 5, 1])
>>> pp=array((10,20,30))
>>> pp
array([10, 20, 30])
>>> mm+pp
array([14, 25, 31])
>>> pp*2
array([20, 40, 60])

使用标准的Python时,向量运算需要循环实现,使用NumPY可以直接运算. 对每个元素平方:

>>> mm**2
array([16, 25,  1])

访问元素:

>>> mm[1]
5
>>> pp[2]
30
>>> 2*mm[1]
10
>>> 

2. 多维NumPY数组

>>> jj=array([[1,2,3],[4,5,6],[7,8,9]])
>>> jj
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

数组访问:

>>> jj[1]
array([4, 5, 6])
>>> jj[1][1]
5
>>> jj[0,2]
3

数组相乘

>>> a1=array([1,2,3])
>>> b1=array([4,8,10])
>>> a1*b1
array([ 4, 16, 30])
>>> a2=array([[2,3,4],[5,6,7]])
>>> b2=array([[1,2,3],[4,5,6]])
>>> a2*b2
array([[ 2,  6, 12],
       [20, 30, 42]])
>>> 

可以看到NumPY数组相乘,两个数组行和列都是相同的,然后对应位置相乘。数组乘法和矩阵乘法还是有区别的,矩阵乘法中两个矩阵必须满足m*n和n*k的条件。

3.NumPY矩阵

创建NumPY矩阵需要导入matrix或mat模块

>>> from numpy import mat,matrix
>>> m1=mat([[1,2,3],[2,3,1]])
>>> m1
matrix([[1, 2, 3],
        [2, 3, 1]])
>>> m2=mat([[1,1,2],[2,1,1]])
>>> m2
matrix([[1, 1, 2],
        [2, 1, 1]])
>>> m1*m2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/numpy/matrixlib/defmatrix.py", line 343, in __mul__
    return N.dot(self, asmatrix(other))
ValueError: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)

这时候m1*m2会发生错误,m1,m2 都为2*3的矩阵,因此不能相乘。把m2转置为3*2的矩阵:

>>> m2.T
matrix([[1, 2],
        [1, 1],
        [2, 1]])
>>> m1*m2.T
matrix([[9, 7],
        [7, 8]])

如果想把矩阵m1和m2中的元素对应相乘,可以使用multiply函数:

>>> from numpy import multiply
>>> m1
matrix([[1, 2, 3],
        [2, 3, 1]])
>>> m2
matrix([[1, 1, 2],
        [2, 1, 1]])
>>> multiply(m1,m2)
matrix([[1, 2, 6],
        [4, 3, 1]])

使用shape函数查看矩阵的维数:

>>> m1.shape
(2, 3)

使用sort函数可以把矩阵中的每一行元素进行排序:

>>> m3=mat([[7,5,4],[9,8,7],[5,2,0]])
>>> m3
matrix([[7, 5, 4],
        [9, 8, 7],
        [5, 2, 0]])
>>> m3.sort()
>>> m3
matrix([[4, 5, 7],
        [7, 8, 9],
        [0, 2, 5]])

计算矩阵平均值:

>>> m3.mean()
5.2222222222222223

取出某一行元素:

>>> m3
matrix([[4, 5, 7],
        [7, 8, 9],
        [0, 2, 5]])
>>> m3[1,:]
matrix([[7, 8, 9]])
>>> m3[2,:]
matrix([[0, 2, 5]])

取指定范围元素, 如取出矩阵m3中第三行中的第二列和第三列,也就算2和5:

>>> m3[2,1:3]
matrix([[2, 5]])

官方文档:numpy-1.10.1

目录
相关文章
|
6天前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
17 3
|
8天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
27 5
|
7天前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
20 2
|
26天前
|
数据采集 Web App开发 数据可视化
Python爬虫教程:Selenium可视化爬虫的快速入门
Python爬虫教程:Selenium可视化爬虫的快速入门
|
1月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
65 10
|
28天前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
42 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
机器学习/深度学习 算法 数据挖掘
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧1
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
49 5
|
1月前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
35 1
|
21天前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--进阶
Python数据分析篇--NumPy--进阶
15 0
|
21天前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--入门
Python数据分析篇--NumPy--入门
29 0