分享

Python中NumPy基础使用

 南风清雨 2017-10-19

Python发展至今,已经有越来越多的人使用python进行科学技术,NumPY是python中的一款高性能科学计算和数据分析的基础包。

 

ndarray

ndarray(以下简称数组)是numpy的数组对象,需要注意的是,它是同构的,也就是说其中的所有元素必须是相同的类型。其中每个数组都有一个shape和dtype。

shape既是数组的形状,比如

复制代码
1 import numpy as np 2 from numpy.random import randn 3 4 arr = randn(12).reshape(3, 4) 5 6 arr 7 8 [[ 0.98655235 1.20830283 -0.72135183 0.40292924] 9 [-0.05059849 -0.02714873 -0.62775486 0.83222997]10 [-0.84826071 -0.29484606 -0.76984902 0.09025059]]11 12 arr.shape 13 (3, 4)

复制代码

其中(3, 4)即代表arr是3行4列的数组,其中dtype为float64

一下函数可以用来创建数组

array  将输入数据转换为ndarray,类型可制定也可默认
asarray  将输入转换为ndarray
arange类似内置range
ones、ones_like  根据形状创建一个全1的数组、后者可以复制其他数组的形状
zeros、zeros_like类似上面,全0
empty、empty_like创建新数组、只分配空间
eye、identity创建对角线为1的对角矩阵

数组的转置和轴对称

转置是多维数组的基本运算之一。可以使用.T属性或者transpose()来实现。.T就是进行轴对换而transpose则可以接收参数进行更丰富的变换

复制代码
arr = np.arange(6).reshape((2,3))print arr[[0 1 2] [3 4 5]]print arr.T[[0 3] [1 4] [2 5]]arr = np.arange(24).reshape((2,3,4))print arr[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]print arr.transpose((0,1,2))[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]
复制代码

 

 

数组的运算

大小相等的数组之间做任何算术运算都会将运算应用到元素级别。

复制代码
1 arr = np.arange(9).reshape(3, 3) 2 print arr 3 4 [[0 1 2] 5 [3 4 5] 6 [6 7 8]] 7 8 print arr*arr 9 10 [[ 0 1 4]11 [ 9 16 25]12 [36 49 64]]13 14 print arr+arr15 16 [[ 0 2 4]17 [ 6 8 10]18 [12 14 16]]19 20 print arr*421 22 [[ 0 4 8]23 [12 16 20]24 [24 28 32]]
复制代码

numpy的简单计算中,ufunc通用函数是对数组中的数据执行元素级运算的函数。

如:

复制代码
arr = np.arange(6).reshape((2,3))print arr[[0 1 2] [3 4 5]]print np.square(arr)[[ 0 1 4] [ 9 16 25]]
复制代码

类似的有:abs,fabs,sqrt,square,exp,log,sign,ceil,floor,rint,modf,isnan,isfinite,isinf,cos,cosh,sin,sinh,tan,tanh,

add,subtract,multiply,power,mod,equal,等等

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多