Numpy
引入Numpy库:import numpy as np
如何创建数组呢?从list中可以创建。1. 创建Numpy数组:a=np.array([1,2,3,4])b=np.array([5,6,7,8])c=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
如何改变多维维numpy数组的形状和数据类型呢?1. 用shape、reshape、dtype:>>>c.shape=4,3>>>carray([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])2. 当某个轴的元素为-1时,自动计算此轴的长度:>>>c.shape=2,-1array([[1,2,3,4,5,6],[7,8,9,10,11,12]])3. 如果想创建一个新的不同尺寸的的数组,可以使用reshape函数:>>>d=a.reshape((2,2))array([[1,2],[3,4]])元数组不变:>>>aarray([1,2,3,4])4. 值得注意的是,a和d是共享内存的,因此修改其中任何一个元素都会同时修改另一个数组元素的值:>>>a[1]=100>>>darray([[1,100],[3,4]])5. 用dtype设置数据类型:>>>f=np.array([1,2,3],[4,5,6],dtype=np.float)array([1., 2., 3.],[4., 5., 6.])
如何设置高效的产生numpy数组?1. arange、linspace、logspace(等比)、random>>>np.arange(0,0.5,0.1)array([0., 0.1, 0.2, 0.3, 0.4])>>>np.linspace(0,1,6)array([0., 0.2, 0.4, 0.6, 0.8, 1.0])>>>np.logspace(0,4,5)array(1,10,100,1000,10000)2.产生随机数:>>> np.random.rand(5)array([ 0.5446348 , 0.42567143, 0.76119409, 0.88086453, 0.17493009])>>> np.random.rand(5,5)array([[ 0., 0.95631677, 0.83040313, 0.13481113, 0.99612222], [ 0.96848638, 0.37188749, 0.53479586, 0.98034924, 0.87704652], [ 0.23301656, 0.37962171, 0.36772092, 0.61770521, 0.], [ 0.57737086, 0.61169222, 0.83329087, 0.36146501, 0.65812722], [ 0., 0.55644472, 0., 0.74932733, 0.91269381]])3.产生横轴和纵轴相加的数组: >>> np.arange(0,60,10).reshape(-1,1)+np.arange(0,6,1)array([[ 0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15], [20, 21, 22, 23, 24, 25], [30, 31, 32, 33, 34, 35], [40, 41, 42, 43, 44, 45], [50, 51, 52, 53, 54, 55]])
如何访问numpy数组元素?下标和列表都可以。>>>x=np.arange(5,1,-1)array([5, 4, 3, 2])>>> b=x[[0,2]]array([5, 3])>>>b= x[[0,2]]array([5, 3])>>> b[0]=100>>>barray([100, 3])>>> xarray([5, 4, 3, 2])可以看出b和x不共享数据空间