Python之Numpy
Posted Rane
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之Numpy相关的知识,希望对你有一定的参考价值。
numpy属性
- ndim:维度
- shape:行数和列数
- size:元素个数
转化列表为矩阵:
temp = np.array([[1, 2], [3, 4]])
数据创建
array
:创建数组dtype
:指定数据类型zeros
:创建数据均为0ones
:创建数据均为1empty
:创建数据均接近0arange
:按指定范围创建数据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