NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

说明

使用 arr 代表 一个numpy数组对象

导入模块

import numpy as np

导入/导出

np.loadtxt(‘file.txt’)从text文件读取
np.genfromtxt(‘file.csv’,delimiter=',')从CSV文件读取
np.savetxt(‘file.txt’,arr,delimiter=' ‘)写入到text文本文件
np.savetxt(‘file.csv’,arr,delimiter=’,')写入到CSV文件

创建数组

np.array([1,2,3])一维数组
np.array([(1,2,3),(4,5,6)])二维数组
np.zeros(3)长度为3数值都为0的一维数组
np.ones((3,4))3x4数组,所有值为1
np.eye(5)对角线为1其余为0的5x5数组 (单位矩阵)
np.linspace(0,100,6)从0到100的6个值的数组
np.arange(0,10,3)Array of values from 0 to less than 10 with step 3 (eg [0,3,6,9])
np.full((2,3),8)2x3数组,所有值为8
np.random.rand(4,5)4x5 array of random floats between 0-1
np.random.rand(6,7)*1006x7 array of random floats between 0-100
np.random.randint(5,size=(2,3))2x3 array with random ints between 0-4

检查属性

arr.size返回数组元素的总数
arr.shape返回数组的维度
arr.dtype返回数组中元素的类型
arr.astype(dtype)将数组元素的类型转换为dtype
arr.tolist()将数组转换为列表
np.info(np.eye)查看np.eye的文档

复制/排序/重塑

np.copy(arr)Copies arr to new memory
arr.view(dtype)Creates view of arr elements with type dtype
arr.sort()Sorts arr
arr.sort(axis=0)Sorts specific axis of arr
two_d_arr.flatten()Flattens 2D array two_d_arr to 1D
arr.TTransposes arr (rows become columns and vice versa)
arr.reshape(3,4)Reshapes arr to 3 rows, 4 columns without changing data
arr.resize((5,6))Changes arr shape to 5x6 and fills new values with 0

添加/删除元素

np.append(arr,values)Appends values to end of arr
np.insert(arr,2,values)Inserts values into arr before index 2
np.delete(arr,3,axis=0)Deletes row on index 3 of arr
np.delete(arr,4,axis=1)Deletes column on index 4 of arr

结合/分裂

np.concatenate((arr1,arr2),axis=0)Adds arr2 as rows to the end of arr1
np.concatenate((arr1,arr2),axis=1)Adds arr2 as columns to end of arr1
np.split(arr,3)Splits arr into 3 sub-arrays
np.hsplit(arr,5)Splits arr horizontally on the5th index

索引/切割/构造子集

arr[5]Returns the element at index 5
arr[2,5]Returns the 2D array element on index [2][5]
arr[1]=4Assigns array element on index 1 the value 4
arr[1,3]=10Assigns array element on index [1][3] the value 10
arr[0:3]Returns the elements at indices 0,1,2 (On a 2D array: returns rows 0,1,2)
arr[0:3,4]Returns the elements on rows 0,1,2 at column 4
arr[:2]Returns the elements at indices 0,1 (On a 2D array: returns rows 0,1)
arr[:,1]Returns the elements at index 1 on all rows
arr<5Returns an array with boolean values
(arr1<3) & (arr2>5)Returns an array with boolean values
~arrInverts a boolean array
arr[arr<5]Returns array elements smaller than 5

标量的数学

np.add(arr,1)Add 1 to each array element
np.subtract(arr,2)Subtract 2 from each array element
np.multiply(arr,3)Multiply each array element by 3
np.divide(arr,4)Divide each array element by 4 (returns np.nan for division by zero)
np.power(arr,5)Raise each array element to the 5th power

向量的数学

np.add(arr1,arr2)Elementwise add arr2 to arr1
np.subtract(arr1,arr2)Elementwise subtract arr2 from arr1
np.multiply(arr1,arr2)Elementwise multiply arr1 by arr2
np.divide(arr1,arr2)Elementwise divide arr1 by arr2
np.power(arr1,arr2)Elementwise raise arr1 raised to the power of arr2
np.array_equal(arr1,arr2)Returns True if the arrays have the same elements and shape
np.sqrt(arr)Square root of each element in the array
np.sin(arr)Sine of each element in the array
np.log(arr)Natural log of each element in the array
np.abs(arr)Absolute value of each element in the array
np.ceil(arr)Rounds up to the nearest int
np.floor(arr)Rounds down to the nearest int
np.round(arr)Rounds to the nearest int

统计数据

np.mean(arr,axis=0)Returns mean along specific axis
arr.sum()Returns sum of arr
arr.min()Returns minimum value of arr
arr.max(axis=0)Returns maximum value of specific axis
np.var(arr)Returns the variance of array
np.std(arr,axis=1)Returns the standard deviation of specific axis
arr.corrcoef()Returns correlation coefficient of array