定义:
NumPy是高性能科学计算和数据分析的基础包。它是pandas等其他各种工具的基础。
NumPy的主要功能:
ndarray,一个多维数组结构,高效且节省空间
无需循环对整组数据进行快速运算的数学函数
*读写磁盘数据的工具以及用于操作内存映射文件的工具
*线性代数、随机数生成和傅里叶变换功能
*用于集成C、C++等代码的工具
安装方法:pip install numpy 引用方式:import numpy as np
二:ndarray-多维数组对象
ndarray是多维数组结构,
与列表的区别是: 1,数组对象内的元素类型必须相同 2,数组大小不可修改
五:实例:
j=[1,2,3,4,5] r=[2,3,4,5,6] j=np.array(j) r=np.array(r) l=j*r ==>l array([2,6,12,20,30])
arr=np.array[[1,2,3],[2,3,4]] arr.T ==> array([[1, 2], [2, 3], [3, 4]])
arr=array([[1, 2], [2, 3], [3, 4]]) arr.dtype ===dtype('int32') arr.size==6 arr.ndim==2 arr.shape==(2,3) PS:数组形式 表示维度大小
arr=np.array([1.2,3.4,5.6]) arr=arr.astype('int') ==>array([1, 3, 5]) 去出小数,取整数 np.arange(1,10,0.2) #range的翻版 ==> array([1. , 1.2, 1.4, 1.6, 1.8, 2. , 2.2, 2.4, 2.6, 2.8, 3. , 3.2, 3.4, 3.6, 3.8, 4. , 4.2, 4.4, 4.6, 4.8, 5. , 5.2, 5.4, 5.6, 5.8, 6. , 6.2, 6.4, 6.6, 6.8, 7. , 7.2, 7.4, 7.6, 7.8, 8. , 8.2, 8.4, 8.6, 8.8, 9. , 9.2, 9.4, 9.6, 9.8])
np.zeros((1,2,3),dtype='int') ==> array([[[0, 0, 0], [0, 0, 0]]]) #一个数组,二横,三列 np.ones((2,3,4),dtype='int') ==> array([[[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]], [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]]) #2个大数组,三横,四列 np.empty((4,6),dtype='int') array([[2057632264, 371, 64, 0, 0, 0], [ 0, 0, 0, 7209071, 1684222001, 811755057], [1630679653, 1684300646, 808871475, 895628336, 842294836, 912417377], [ 892757348, 892809574, 1701012792, 959789410, 1697735986, 1633890917]]) #4横6列的随机数 np.eye(4,dtype='int') array([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]) #边长为5的数组
arr=np.arange(20).reshape(4,5) array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]])
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) arr[1][3] ==8 arr[1,3] ==8
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) arr[1:3,2:4] ==> array([[ 7, 8], [12, 13]]) #他是取第一行和第二行 再从第一行和第二行之间取 2-4列的数
b=[random.randint(1,10) for i in range(20) list(filter(lambda x:x>5,b)) ==> [9, 9, 9, 9, 8, 7, 10]
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) arr2[:,[1,3]][[1,3],:] array([[ 6, 8], [16, 18]])
arr=array([ 2, 2, 1, 2, 9, 1, 2, 2, 9, 9, 3, 9, 5, 1, 5, 8, 2, 7, 10, 1]) arr(arr.arange(0,arr.size,2) ==> array([ 2, 1, 9, 2, 9, 3, 5, 5, 2, 10]) arr(arr.arange(0,arr.size,4) array([2, 9, 9, 5, 2])
arr = np.array([random.uniform(-5,5) for _ in range(20)]) array([ 4.04565696, 1.19190597, 0.63930306, 3.07415326, 3.17752185, 4.25314581, -3.13307449, -1.1630629 , -3.38121501, -1.99839443, 3.13160442, -2.29378581, 2.58989142, 4.46074874, -0.24500954, -1.63483659, 3.54216199, -4.35408201, 0.12284761, 2.26431038]) np.abs(arr) ** 0.5 array([ 2.01138185, 1.09174446, 0.79956429, 1.75332634, 1.78256048, 2.06231564, 1.77004929, 1.07845394, 1.83880804, 1.41364579, 1.76963398, 1.51452495, 1.60931396, 2.11204847, 0.49498438, 1.27860729, 1.88206323, 2.08664372, 0.35049624, 1.50476257]) ceil:向上取整 3.6 -》4 3.1-》4 -3.1-》-3 floor:向下取整:3.6-》3 3.1-》3 -3.1-》-4 rint(round):四舍五入:3.6-》4 3.1-》3 -3.6-》-4 trunc(int):向零取整(舍去小数点后) 3.6-》3 3.1-》3 -3.1-》-3 a,b=np.modf(arr) (array([ 0.04565696, 0.19190597, 0.63930306, 0.07415326, 0.17752185, 0.25314581, -0.13307449, -0.1630629 , -0.38121501, -0.99839443, 0.13160442, -0.29378581, 0.58989142, 0.46074874, -0.24500954, -0.63483659, 0.54216199, -0.35408201, 0.12284761, 0.26431038]), array([ 4., 1., 0., 3., 3., 4., -3., -1., -3., -1., 3., -2., 2., 4., -0., -1., 3., -4., 0., 2.]))
arr=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr.cumsum() ==> array([ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45], dtype=int32)
np.random.choice([2,3,4,5,6,7],(1,5)) array([[7, 2, 2, 3, 7]])