初探Numpy
来源:互联网 发布:防御矩阵攻略 编辑:程序博客网 时间:2024/05/15 23:45
零. 什么是Numpy
Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。
一. 获取并安装Numpy
1.1 安装Python发行版
对于许多用户来说,尤其是在Windows上,最简单的方法就是下载一个Python发行版,其中包括所有的关键包。
如何安装Python发行版?点击这里,参看【二. 环境配置】部分内容。
【提示】如果你的开发工具是PyCharm,那么你可以在设置里面查看你所安装的包,也可以按照如下操作添加所需要的包:
File–>Settings–>[Project PycharmProjects]–>[Project Interpreter],显示已经安装的包,点击右侧[+]符号可以添加依赖包。
接着,输入包的名称,选择包可以查看相关信息,点击Install Package即可。
1.2 通过pip安装
大多数主要项目都将官方软件包上传到Python Package索引。它们可以使用Python的标准pip 包管理器安装在大多数操作系统上。
请注意,您需要在你的系统上安装Python和pip。
你可以通过以下命令来安装软件包:
python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose
二. Numpy数组
2.1 ndarray属性
NumPy数组最大的特点就是一个多维数组对象,称为ndarray。ndarray是一种同构数据多维容器,也就是说,其中所有的元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元祖)和一个dtype(一个用于说明数组数据类型的对象)。
关于NumPy数组有几点必需了解的:
- NumPy数组的下标从0开始。
- 同一个NumPy数组中所有元素的类型必须是相同的。
一个ndarray对象重要的属性是:
- ndarray.ndim: 阵列的轴数(维度)。在Python世界中,维度的数量被称为等级。
- ndarray.shape: 数组的尺寸。这是一个整数的元组,指示每个维度中数组的大小。对于具有n行m列的矩阵,shape将是(n,m)。shape因此元组的长度
是等级或维数 ndim。 - ndarray.size: 数组元素的总数。这等于元素的产物shape。
- ndarray.dtype: 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。numpy.int32,numpy.int16和numpy.float64是一些例子。
- ndarray.itemsize: 数组中每个元素的字节大小。例如,类型元素的数组float64有itemsize8(=
64/8),而其中一个类型complex32有itemsize4(= 32/8)。这相当于ndarray.dtype.itemsize。 - ndarray.data: 包含数组的实际元素的缓冲区。通常,我们不需要使用这个属性,因为我们将使用索引设施访问数组中的元素。
例2.1.1:创建ndarray,并打印出其维度,各维度大小,类型,值。
>>> import numpy as np # 导入模块numpy并以np作为别名>>> data = np.array([[1, 2, 3], [4, 5, 6]])>>> print data.ndim # 输出data的维度2>>> print data.shape # 输出data的各维度的长度(2L, 3L)>>> print data.dtype # 输出data的数据类型int32>>> print data # 输出data的值[[1 2 3] [4 5 6]]
除了np.array之外,还有一些函数可以新建数组,如zeros和ones分别可以创建指定长度或形状的全0或全1数组,empty可以创建一个没有任何具体指的数组。[^对角矩阵]
例2.1.2:使用zeros、ones、eye、empty函数创建数组。
>>> print np.zeros((3,4)) # 生成2行4列值全为0的数组[[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]]>>> print np.ones((3,4)) # 生成3行4列值全为1的数组[[ 1. 1. 1. 1.] [ 1. 1. 1. 1.] [ 1. 1. 1. 1.]]>>> print np.eye(3) # 生成对角矩阵[[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]] >>> print np.empty((2,3,2)) # 生成未经初始化的三维数组array([[[ 3.30203557e-316, 3.30204348e-316], [ -2.30219128e-207, 9.46643641e+032], [ 1.79006441e+245, -3.05236051e+222]], [[ 4.42232319e-301, 3.53590670e-111], [ 7.39387869e-218, -8.96112260e-206], [ 8.55755696e-116, 6.29600287e+051]]])
值得注意的是np.empty返回的都是一些未经初始化的垃圾值。
数组创建函数
参考文档:Python之路——numpy各函数简介之生成数组函数(Array creation routines)
2.2 ndarray数据类型
三. 参考资料
- 《利用Python进行数据分析》麦金尼,机械工业出版社,2013-10-30
- Numpy官方教程
- Python中的Numpy入门教程
- 给深度学习入门者的Python快速教程 -Numpy和Matplotlib篇
- numpy.eye()生成对角矩阵
- 初探Numpy
- NumPy数组(1、数组初探)
- NumPy数组(1、数组初探)
- NumPy数组(1、数组初探)
- Numpy
- numpy
- numpy
- Numpy
- numpy
- numpy
- numpy
- NumPy
- numpy
- numpy
- Numpy
- numpy
- Numpy
- Numpy
- 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在
- 分糖啦!!!
- ISBN-号码-vijos
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
- Torch/Lua学习资料汇总
- 初探Numpy
- Unity 对选中物体实现描边效果(方法1:指定layer的外轮廓渲染)
- 蓝牙设备连接电脑
- PHP的函数、数组,字符和对象
- luogu P1007 独木桥
- 原生Bootstrap实现动态分页
- wordpress配置smtp功能后无法发送邮件的原因|
- 关于配置文件
- 巧妙填数-vijos