[Python] Numpy库

NumPy是一个开源的Python科学计算基础库,包含:

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

NumPy是SciPy、Pandas等数据处理或科学计算库的基础

包的下载与导入

Numpy 包,如果已安装annaconda可直接使用,如果没有,也可以自行搜索下载

导入常用别名 np

import numpy as np

ndarray

ndarray 是一个 多维数组对象 ,它由两部分组成:

  • 实际的数据
  • 描述这些数据的元数据(数据维度,数据类型等)

ndarray 数组内元素类型一般要求相同(也可不同,不过这样就和list区别不大了),数组下标从0开始。

它能够从整体来描述一个数据集,能够以整体的形式进行两个数组的运算比较等操作。

创建

  1. 直接使用 np.array() 参数为一个列表
>>> a = np.array([[0,1,2,3,4],
                 [5,6,7,8,9]])

属性

[[0,1,2,3,4]],[5,6,7,8,9]]为例

  1. 使用 .ndim 获取维度信息
>>> a.ndim
>>> 2
  1. 使用 .shape 获取数组的形状
>>> a.shape
>>> (2,5)
  1. 使用 .size 获取数组的大小(元素个数)
>>> a.size
>>> 10
  1. 使用 .dtype 获取数组内元素的存储类型,(默认值与操作系统有关)
>>> a.dtype
>>> dtype('int64')
  1. 使用 .itemsize 获取数组内单个元素的大小(字节)
>>> a.itemsize
>>> 8

元素类型

  • ndarray 没有 double 类型

  • 支持复数类型 complex64 , complex128

  • 常见的类型:int , uint, float , bool

    • 后缀16,32,65代表字节长度

数组的变换

维度变换

  1. 使用 .reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变,shape为数组形状。

注意要保证改变形状后的数组元素与之前一致

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.reshape([5,2])
>>> [[ 1  2  3  4  5]
 [ 6  7  8  9 10]]
>>> [[ 1  2]
 [ 3  4]
 [ 5  6]
 [ 7  8]
 [ 9 10]]

原先2*5的数组a 变为5*2的数组b

  1. 使用 .resize(shape).reshape() 功能一致

  2. 使用 .swapaxes(ax1,ax2) 调换两个维度

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,10]])
>>> b = a.swapaxes(0,1)
>>> b
>>> [[ 1  6]
 [ 2  7]
 [ 3  8]
 [ 4  9]
 [ 5 10]]

注意与reshape返回的数组的区别

  1. 使用 .flatten() 变为一维数组

类型变换

使用方法 .astype(new_type) 返回一个新的数组

>>> b = a.astype(float32)

列表变换

使用方法 .tolist() 返回一个列表

>>> ls = a.tolist()

a是一个ndarray数组,ls是由这个数组生成的列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章