Python之Numpy

Posted Rane

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之Numpy相关的知识,希望对你有一定的参考价值。

numpy属性

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

转化列表为矩阵:
temp = np.array([[1, 2], [3, 4]])




数据创建

  • array:创建数组
  • dtype:指定数据类型
  • zeros:创建数据均为0
  • ones:创建数据均为1
  • empty:创建数据均接近0
  • arange:按指定范围创建数据
  • linspace:创建线段
  • reshape:更改数据形状

dtype示例

import numpy as np
temp = np.ones((3, 4), dtype = np.int)

arange示例

import numpy as np
temp = np.arange(1, 20, 3)

前两个参数为范围,第三个参数为步长。

reshape示例

import numpy as np
temp = np.arange(12).reshape((3, 4))

linspace示例

import numpy as np
temp = np.linspace(1, 10, 20)

前两参数为端点,第三个参数代表有多少个数据。




基础运算

加、减、乘法(+ 、- 、×)均可直接使用。

这里的乘法是相同位置的元素相乘,不是矩阵的乘法。

乘方通过两个乘号 ×× 实现。


dot()

该函数实现矩阵的乘法。

用法一:

temp = np.dot(a, b)

用法二:

temp = a.dot(b)

sum() min() max()

这三个函数默认以行为单位进行运算,若需要以列为单位,则需要更改axis的值。(axis默认为0 。)

示例:

print(np.sum(temp, axis = 1))

argmin() argmax()

这两个函数会返回矩阵中最小值或最大值的索引。


mean() average()

两函数均可返回平均值。


median()

该函数返回中位数。


cumsum() diff()

该函数与matlab中的 cumsum() 累加函数类似。该函数中,生成的没一想矩阵元素均是从原矩阵首项累加到对应项的元素之和。

如原矩阵为

(egin{bmatrix} 0&1 2&3 end{bmatrix})

函数处理完后,矩阵为

(egin{bmatrix} 0&1 3&6 end{bmatrix})

相应的,diff() 为累差函数。该函数计算的是每一行中,后一项与前一项的差。


nonzero()

该函数将所有非零元素的行与列坐标分割开,重构成两个分别关于行和列的矩阵。

例如:原矩阵为

(egin{bmatrix} 1&2 3&4 end{bmatrix})

输出为

array([0, 0, 1, 1]), array([0, 1, 0, 1])


sort()

该函数对矩阵的每一行进行排序,行内数据的排序,行之间的数据不会互相影响。


transpose()

该函数可以实现矩阵的转置。

使用示例:

temp = np.array([[1, 2], [3, 4]])
temp = np.transpose(temp)

temp.T 也可以实现矩阵的转置。


clip()

该函数可以设定上下限,并对矩阵内在上下限外的数据替换为上下限边界值。

函数格式:clip(Array, Array_min, Array_max)




索引操作

flatten()

该函数可以将多维矩阵展开成1行的数列。而flat是一个迭代器,本身是一个object属性。

示例:

temp = np.array([[1, 2], [3, 4]])
for i in temp.flat:
    print(i)

输出结果为:1 2 3 4




Array合并

vstack()

Vertical Stack. 该函数实现了对两个矩阵的上下合并。


hstack()

Horizontal Stack. 该函数实现了对两个矩阵的左右合并。


concatenate()

该函数可以实现多个矩阵或序列的连接。

格式:

np.concatenate((a, b, c, d), axis = 0)

axis控制矩阵的纵向或横向。




分割操作

split()

格式:

np.split(Array, pieces number, axis)

axis控制分割方向,0为横向切割,1为纵向切割。


不等量分割

函数:array_split()

使用格式与split()相同。


vsplit() hsplit()

垂直分割与水平分割。




拷贝

=或者copy()均可完成数据的拷贝。

示例:

a = b

a = b.copy()

































以上是关于Python之Numpy的主要内容,如果未能解决你的问题,请参考以下文章

备战数学建模27 & 科研必备 -Python之数值型数据处理numpy

乐哥学AI_Python:Numpy索引,切片,常用函数

进阶第十五课 Python模块之Numpy

39.Python之Numpy库常用函数大全(含注释)

Python之NumPy(axis=0 与axis=1)区分

学机器学习,不会数据分析怎么行?之NumPy详解