您的位置:首页 > 编程语言 > Python开发

Python中NumPy基础使用

2016-03-06 17:10 555 查看

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

 

ndarray

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

shape既是数组的形状,比如

import numpy as np
from numpy.random import randn

arr = randn(12).reshape(3, 4)

arr

[[ 0.98655235  1.20830283 -0.72135183  0.40292924]
[-0.05059849 -0.02714873 -0.62775486  0.83222997]
[-0.84826071 -0.29484606 -0.76984902  0.09025059]]

arr.shape
(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]]]

 

 

数组的运算

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

arr = np.arange(9).reshape(3, 3)
print arr

[[0 1 2]
[3 4 5]
[6 7 8]]

print arr*arr

[[ 0  1  4]
[ 9 16 25]
[36 49 64]]

print arr+arr

[[ 0  2  4]
[ 6  8 10]
[12 14 16]]

print arr*4

[[ 0  4  8]
[12 16 20]
[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,等等

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: