Python之Numpy

时间:2020-07-22 01:53:13   收藏:0   阅读:86

numpy属性

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




数据创建

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() 累加函数类似。该函数中,生成的没一想矩阵元素均是从原矩阵首项累加到对应项的元素之和。

如原矩阵为

\(\begin{bmatrix} 0&1 \ 2&3 \end{bmatrix}\)

函数处理完后,矩阵为

\(\begin{bmatrix} 0&1 \ 3&6 \end{bmatrix}\)

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


nonzero()

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

例如:原矩阵为

\(\begin{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()
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!