python学习之numpy模块

numpy模块的基本使用

Posted by YangSijie on June 11, 2018

numpy模块使用

有两个基本类,ndarraymatrix。 ndarray:为多维队列 matrix:为矩阵(是ndarray的子类,不推荐使用)

import numpy as np
    arr = np.array([
                [1, 2, 3],
                [2, 3, 4]
        ])

如此,就生成了一个 2行3列 的多维数组

darray直接使用 +、-、*、/ 是对其中每个元素做对应的运算。 若要使用 矩阵乘法, 则需要使用 dot(), 如: np.dot(arr1, arr2)

再求对应的 转置矩阵 时,可以直接使用 arr1.T

需要注意的是: 一维数组使用该方法无法转置,即[1, 2, 3, 4]这种无法转置,需要使用 np.c_[] 方法,该方法用于添加 列,在这里可以将一维数组转置 np.c_[arr1]

np.size():统计元素个数、行数、列数

>>> a = np.array([[1,2,3],[4,5,6]])
>>> np.size(a)      # 6:统计的是 元素个数
6                   
>>> np.size(a,1)	# 1:统计的是 列数
3
>>> np.size(a,0)	# 0:统计的是 行数
2

np.mean():统计所有元素的平均值、每行的平均值、每列的平均值

>>> a = np.array([[1, 2], [3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0)		# axis=0:统计的是 每列的平均值
array([ 2.,  3.])
>>> np.mean(a, axis=1)		# axis=1:统计的是 每行的平均值
array([ 1.5,  3.5])

np.std():统计所有元素的标准差、每行的标准差、每列的标准差

>>> a = np.array([[1, 2], [3, 4]])
>>> np.std(a)
1.1180339887498949
>>> np.std(a, axis=0)		# axis=0:统计的是 每列的标准差
array([ 1.,  1.])
>>> np.std(a, axis=1)		# axis=1:统计的是 每行的标准差
array([ 0.5,  0.5])

np.tile():将队列进行拓展,增加行数

>>> c = np.array([1,2,3,4])
>>> np.tile(c,(4,1))		# (4, 1)指的是对c进行拓展,增加4行,列数为1列(这个1列指的是c本身不拓展列数)
array([[1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4],
       [1, 2, 3, 4]])