Python之Numpy

2021-04-12 00:27

阅读:611

标签:垂直   拷贝   argmin   控制   相同   处理   计算   strong   cal   

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

如原矩阵为

\(\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()

Python之Numpy

标签:垂直   拷贝   argmin   控制   相同   处理   计算   strong   cal   

原文地址:https://www.cnblogs.com/Rane/p/13358175.html


评论


亲,登录后才可以留言!