当前位置:   article > 正文

Python基础 Numpy菜鸟教程

numpy菜鸟教程

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

  • 一个强大的N维数组对象 ndarray
  • 广播功能函数
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

使用 pip 安装 :

pip3 install --user numpy scipy matplotlib

--user 选项可以设置只安装在当前的用户下,而不是写入到系统目录。

默认情况使用国外线路,国外太慢,我们使用清华的镜像就可以:

pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

安装验证 :

  1. >>> from numpy import *
  2. >>> eye(4)
  3. array([[1., 0., 0., 0.],
  4. [0., 1., 0., 0.],
  5. [0., 0., 1., 0.],
  6. [0., 0., 0., 1.]])

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

ndarray 对象是用于存放同类型元素的多维数组。

ndarray 中的每个元素在内存中都有相同存储大小的区域。

ndarray 内部由以下内容组成:

  • 一个指向数据(内存或内存映射文件中的一块数据)的指针。

  • 数据类型或 dtype,描述在数组中的固定大小值的格子。

  • 一个表示数组形状(shape)的元组,表示各维度大小的元组。

  • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

 

实例 1

  1. import numpy as np
  2. a = np.array([1,2,3])
  3. print (a)

实例 2

  1. # 多于一个维度
  2. import numpy as np
  3. a = np.array([[1, 2], [3, 4]])
  4. print (a)

实例 3

  1. # 最小维度
  2. import numpy as np
  3. a = np.array([1, 2, 3, 4, 5], ndmin = 2)
  4. print (a)

实例 4

  1. # dtype 参数
  2. import numpy as np
  3. a = np.array([1, 2, 3], dtype = complex)
  4. print (a)

 NumPy 数据类型

 

 数据类型对象 (dtype)

numpy.dtype(object, align, copy)
  • object - 要转换为的数据类型对象
  • align - 如果为 true,填充字段使其类似 C 的结构体。
  • copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

实例 1

  1. import numpy as np
  2. # 使用标量类型
  3. dt = np.dtype(np.int32)
  4. print(dt)

实例 2

  1. import numpy as np
  2. # int8, int16, int32, int64 四种数据类型可以使用字符串 'i1'
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/822307
推荐阅读
相关标签
  

闽ICP备14008679号