首页 > 编程笔记

Numpy array数组对象使用详解

numpy 模块定义两个新的对象类型:array 和 ufunc,以及一组操作该对象的函数,以将这两个新的对象类型与其他 Python 类型进行转换。

array 对象是一个可为大数目的数字集合,集合内的数字必须是相同类型,如都是双精度浮点数。

使用 numpy 模块的 array() 方法创建 array 对象。其语法格式如下:

array(numbers [, typecode=None])

其中,numbers 是一个序列对象,如元组与列表;typecode 是 numbers 元素的类型。

1) 创建一维数组

下面的示例是创建一个一维向量数组。
>>>from numpy import *
>>>x, y, z = 1, 2, 3
>>>a = array([x, y, z])
>>>print (a)
 [1 2 3]
下面的示例是创建一个一维向量数组,并将向量值以浮点数表示。
>>>from numpy import *
>>>x, y, z = 1, 2, 3
>>>a = array([x, y, z], float)
>>>print (a)
[ 1.  2.  3.]

2) array创建二维矩阵

下面的示例是创建一个 2 行 3 列的矩阵。
>>>from numpy import *
>>>ma = array([[1, 2, 3], [4, 5, 6]])
>>>print (ma)
[[1 2 3]
[4 5 6]]
下面的示例是显示矩阵 ma 的行列数。
>>>print ma.shape
(2, 3)

3) Numpy数组变维操作

下面的示例将矩阵 ma 改成一维矩阵。
>>>ma2 = reshape(ma, (6,))
>>>print (ma2)
[1 2 3 4 5 6]
下面的示例将矩阵 ma 改成 9 行 9 列的矩阵。
>>>ma = array([[1, 2, 3], [4, 5, 6]])
>>>big = resize(ma, (9, 9))
>>>print (big)
[[1 2 3 4 5 6 1 2 3]
[4 5 6 1 2 3 4 5 6]
[1 2 3 4 5 6 1 2 3]
[4 5 6 1 2 3 4 5 6]
[1 2 3 4 5 6 1 2 3]
[4 5 6 1 2 3 4 5 6]
[1 2 3 4 5 6 1 2 3]
[4 5 6 1 2 3 4 5 6]
[1 2 3 4 5 6 1 2 3]]

4) Numpy数组基本运算

下面的示例将两个矩阵相加。
>>>a = array([[1, 2, 3], [4, 5, 6]])
>>>b = array([[7, 8, 9], [10, 11, 14]])
>>>print (a + b)
[[ 8 10 14]
[14 16 18]]
下面的示例将两个矩阵相乘。
>>>a = array([[1, 2, 3], [4, 5, 6]])
>>>b = array([[7, 8, 9], [10, 11, 14]])
>>>print (a * b)
[[ 7 16 27]
[40 55 72]]
ufunc 对象提供了用于操作 array 对象的函数集合。这些函数如下表所示:

ufunc对象的函数
add (+) subtract (-) multiply (*) divide (/)
remainder (%) power (**) arccos  arccosh
arcsin arcsinh arcsinh arctanh
COS cosh exp log
log10 sin sinh sqrt
tan tanh maximum minimum
conjugate equal (=) not_ equal (!=) greater (> )
greater_ equal (>=) less() less_ equal(<=) logical_ _and (and)
logical_ _or (or) logical_ xor logical_ not (not) bitwise_ and (&)
bitwise_ or () bitwise xor bitwise_ not (~)  

下面的示例将两个矩阵相加。
>>> from numpy import *
>>> a = array([[1, 2, 3], [4, 5, 6]])
>>> b = array([[7, 8, 9], [10, 11, 14]])
>>> print(add(a, b))
[[8 10 14]
[14 16 18]]
下面的示例是计算矩阵的正弦值。
>>>a = arange (10)
>>>print (sin(a) )
[ 0.0.84147098 0.90929743 0.14114001 -0.7568025 -0.95892427
-0.2794145 0.6569866 0.98935825 0.41411849]

优秀文章