numpy基础知识归纳

作者 : 开心源码 本文共1502个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共212人阅读

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

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
  • 一个强大的N维数组对象 ndarray
  • 广播功能函数
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

numpy 的属性:

  • ndim:维度
  • shape:行数和列数
  • size:元素个数

Numpy 的创立 array

  • array:创立数组
  • dtype:指定数据类型
  • zeros:创立数据全为0
  • ones:创立数据全为1
  • empty:创立数据接近0
  • arrange:按指定范围创立数据
  • linspace:创立线段
    `

创立一个数组

a = np.array([1,26,8]) # list 1d
print(a)

[1 26 8]

指定数据 dtype

a = np.array([1,26,8],dtype=np.int32)
print(a.dtype)

int32

`

Numpy 基础运算 (讲两种)

算术运算符

`
a = np.arange(0,5)
array([0, 1, 2, 3, 4])

a+4
array([4, 5, 6, 7, 8])
`
最简单的就是给数组加上一个标量,而后每个都元素都加上这个标量,当然也可以减乘除。

这些运算符还可以用于两个数组的运算。在numpy中这些运算符是元素级的,即只用于位置相同的元素。

此外,这些运算符还适用于返回值为numpy数值的函数

聚合函数

聚合函数是指对一组值(比方一个数组)进行操作,返回一个单一值作为结果的函数。比方求数组所有元素之和就是聚合函数。
aarray([1, 2, 3, 4, 5])a.sum()15

Numpy array 合并

Python中numpy数组的合并有很多方法,如
  • np.append()
  • np.concatenate()
  • np.stack()
  • np.hstack()
  • np.vstack()
  • np.dstack()
    其中最泛用的是第一个和第二个。第一个可读性好,比较灵活,但是占内存大。第二个则没有内存占用大的问题。

Numpy array 分割

分割方法有:

  1. 水平分割
  2. 垂直分割
  3. 深度分割

水平分割

下面的代码将把数组沿着水平方向分割为3个相同大小的子数组:
b = hsplit(a,3) print(b)
得到结果为:
[array([[0], [3], [6]]), array([[1], [4], [7]]), array([[2], [5], [8]])]

垂直分割

下面的代码将把数组沿着垂直方向分割为3个相同大小的子数组:
b = vsplit(a,3) print(b)
得到结果为:
[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

深度分割

先创立一个三维数组:
a = arange(27).reshape(3,3,3) print(a)
调用dsplit函数按深度方向分割数组
b = dsplit(a,3) print(b)
得到结果
`
[array([[[ 0],
[ 3],
[ 6]],

   [[ 9],    [12],    [15]],   [[18],    [21],    [24]]]),

array([[[ 1],
[ 4],
[ 7]],

   [[10],    [13],    [16]],   [[19],    [22],    [25]]]),

array([[[ 2],
[ 5],
[ 8]],

   [[11],    [14],    [17]],   [[20],    [23],    [26]]])]

`

Numpy copy & deep copy

简单理解
numpy关于copy有三种情况,完全不复制、视图(view)或者者叫浅复制(shallow copy)和深复制(deep copy)。

增加公众号【数据蛙DataFrog】,我们一起学习交流

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » numpy基础知识归纳

发表回复