多语言展示
当前在线:724今日阅读:39今日分享:10

如何使用Numpy创建各种科学计算所需要的数组

我们总是希望Python中可以像MATLAB一样方便地处理数组,那么Numpy就能满足这一要求。相较于Python中内置的list类型,,NumPy提供了两种基本的对象:ndarray(N-dimensional arrayobject)和ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。
工具/原料

Numpy

方法/步骤
1

引入Numpy库:import numpy as np

2

如何创建数组呢?从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]])

3

如何改变多维维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.])

4

如何设置高效的产生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]])

5

如何访问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不共享数据空间

推荐信息