Numpy学习-(1)
记录我学习Numpy过程
1. 介绍
(1)NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象 ndarray广播功能函数整合 C/C++/Fortran 代码的工具线性代数、傅里叶变换、随机数生成等功能
2. Numpy应用
(1)NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。
[NumPy 官网](http://www.numpy.org/)
[Matplotlib 官网](https://matplotlib.org/)
[SciPy 官网](https://www.scipy.org/)
3. Numpy 安装
(1) 在电脑安装python之后,设置好环境变量。这里由两个环境变量,一个是python解释器的文件夹;一个是script的文件夹(这个文件夹下面由一个pip程序)
(2)用<kbd>win</kbd>+<kbd>r</kbd>组合键进入cmd,输入:
pip install numpy
等待片刻,最后安装成功。
打开python IDE输入以下代码验证是否安装成功。
>>> from numpy import *
>>> eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
4. Ndarray 对象
(1)NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。
例子1:
import numpy as np
a = np.array([3,2,1])
print (a)
结果:
[3,2,1]
例子2:
import numpy as np
a = np.array([[1, 2], [3, 4]])
print (a)
结果:
[[1, 2]
[3, 4]]
例子3:
import numpy as np
a = np.array([1, 2, 3], dtype = complex)
print (a)
结果:
[ 1.+0.j, 2.+0.j, 3.+0.j]
5. 数组属性
**属性说明**
1. ndarray.ndim秩,即轴的数量或维度的数量
2. ndarray.shape数组的维度,对于矩阵,n 行 m 列
3. ndarray.size数组元素的总个数,相当于 .shape 中 n*m 的值
4. ndarray.dtypendarray 对象的元素类型
5. ndarray.itemsizendarray 对象中每个元素的大小,以字节为单位
6. ndarray.flagsndarray 对象的内存信息
7. ndarray.realndarray元素的实部
8. ndarray.imagndarray 元素的虚部
9. ndarray.data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。
6. 创建数组
(1)下面创建一个空的矩阵://三行两列的空数组
import numpy as np
x = np.empty([3,2], dtype = int)
(2)下面创建一个指定大小的全0矩阵:
i
mport numpy as np # 默认为浮点数
x = np.zeros(5)
print(x) # 设置类型为整数
y = np.zeros((5,), dtype = np.int)
print(y)
结果:
[0. 0. 0. 0. 0.]
[0 0 0 0 0]
(3)下面创建一个指定大小的全1矩阵:
import numpy as np # 默认为浮点数
x = np.ones(5)
print(x) # 自定义类型
x = np.ones([2,2], dtype = int)
print(x)
结果:
[1. 1. 1. 1. 1.]
[[1 1]
[1 1]]
(4)下面创建一个指定范围的数组:
import numpy as np
x = np.arange(10,22,2)
print (x)
a = np.linspace(1,10,10)
print(a)
a = np.linspace(10, 20, 5, endpoint = True)
print(a)
结果:
[10 12 14 16 18 20]
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
[10. 12. 14. 16. 18. 20.]
Numpy学习-(1)的更多相关文章
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- numpy 学习总结
numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...
- (转)Python数据分析之numpy学习
原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...
- Numpy学习1
NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...
随机推荐
- 记录一些服务端术语和搭建web服务器
菜单快捷导航 服务端常用术语 搭建web服务器和配置虚拟主机 记录一些服务端方面的常用术语 1.CS架构和BS架构 1.1 CS架构 CS(Client/Server),基于安装包类型的桌面或手机软件 ...
- 2020年PHP 面试问题(三)
2020年PHP 面试问题(一) 2020年PHP 面试问题(二) 一.数据库三范式 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解: 第二范式:2NF是对记录的惟一性约束,要求 ...
- Building Applications with Force.com and VisualForce (DEV401) (二十):Visualforce Pages: Visualforce Componets (Tags)
Dev401-021:Visualforce Pages: Visualforce Componets (Tags) Module Agenda1.Tag Basics2.Tag Bindings T ...
- Building Applications with Force.com and VisualForce(Dev401)(十八):Visualforce Pages: Introduction to Visualforce
Dev401-020:Visualforce Pages: Introduction to Visualforce Course Objectives1.Understand the benefits ...
- TensorFlow RNN 教程和代码
分析: 看 TensorFlow 也有一段时间了,准备按照 GitHub 上的教程,敲出来,顺便整理一下思路. RNN部分 定义参数,包括数据相关,训练相关. 定义模型,损失函数,优化函数. 训练,准 ...
- Java中如何调用静态方法
Java中如何调用静态方法: 1.如果想要调用的静态方法在本类中,可直接使用方法名调用 2.调用其他类的静态方法,可使用类名.方法名调用 关于静态方法能被什么调用 1.实例方法 2.静态发放
- 15.自动部署web工程
用maven自动部署web工程 在pom.xml中写入以下: <build> <!--最终名称,进入网页时有http://localhost:8080/xxx/--> < ...
- 12c OCR corrupted results in CRS stack down.
12c OCR corrupted results in CRS stack down. 1. check crsd.trc2017-03-21 16:14:44.667838 : CRSOCR:2 ...
- JAVA研发面试题
转自:http://www.jianshu.com/p/1f1d3193d9e3 Java基础的知识点推荐<Java编程思想>,JVM的推荐<深入理解Java虚拟机>,Spri ...
- Netty耗时的业务逻辑应该写在哪儿,有什么注意事项?
更多技术分享可关注我 前言 Netty以高性能著称,但是在实际使用中,不可避免会遇到耗时的业务逻辑,那么这些耗时操作应该写在哪儿呢,有什么注意的坑吗?本篇文章将一一总结. Netty线程调度模型回顾 ...