numpy学习整理

来源:互联网 发布:淘宝工作人员的名片 编辑:程序博客网 时间:2024/06/17 09:03

今天先整理到这里,剩下的下次再整理
1.改变形状:
reshape()返回改变的数组形状,但无法改变源数组形状
resize() 可以改变源数组形状
ravel() 输出类似C数组的列表,和reshape()一样,返回C似的数组但无法改变源数组形状
例如:

>>> from numpy import *>>> c = arange(24)>>> print c[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]>>> c.resize(4,6)>>> print c[[ 0  1  2  3  4  5] [ 6  7  8  9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23]]>>> c.reshape(3,8)array([[ 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 c[[ 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 c.ravel()[ 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 c[[ 0  1  2  3  4  5] [ 6  7  8  9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23]]

2.组合(stack)不同的数组
vstack():横向组合数组
hstack():纵向组合数组
column_stack():纵向组合数组,和hstack()效果一样,区别在哪,目前我也不懂…
row_stack(): 横向组合数组,和vstack()效果一样,区别在哪,目前我也不懂…

>>> b = floor(10*random.random((2,2)))>>> a = floor(10*random.random((2,2)))>>> aarray([[ 6.,  3.],       [ 9.,  9.]])>>> barray([[ 9.,  3.],       [ 6.,  5.]])>>> column_stack((a,b))array([[ 6.,  3.,  9.,  3.],       [ 9.,  9.,  6.,  5.]])>>> hstack((a,b))array([[ 6.,  3.,  9.,  3.],       [ 9.,  9.,  6.,  5.]])>>> row_stack((a,b))array([[ 6.,  3.],       [ 9.,  9.],       [ 9.,  3.],       [ 6.,  5.]])>>> vstack((a,b))array([[ 6.,  3.],       [ 9.,  9.],       [ 9.,  3.],       [ 6.,  5.]])>>>

3.复制(视图复制)
不同的数组对象分享同一个数据。视图方法创造一个新的数组对象“指向”同一数据。视图复制之后,有独立的数据形状
但是这是浅复制,数据是同步的

>>> a = arange(12).reshape((3,4))>>> aarray([[ 0,  1,  2,  3],       [ 4,  5,  6,  7],       [ 8,  9, 10, 11]])>>> c = a.view()>>> carray([[ 0,  1,  2,  3],       [ 4,  5,  6,  7],       [ 8,  9, 10, 11]])>>> c is aFalse>>> c.resize((2,6))>>> carray([[ 0,  1,  2,  3,  4,  5],       [ 6,  7,  8,  9, 10, 11]])>>> aarray([[ 0,  1,  2,  3],       [ 4,  5,  6,  7],       [ 8,  9, 10, 11]])>>> c[0] = 1234>>> carray([[ 1234,  1234,  1234,  1234,  1234,  1234],       [ 6,  7,  8,  9, 10, 11]])>>> aarray([[1234, 1234, 1234, 1234],       [   1234,    1234,    6,    7],       [   8,    9,   10,   11]])
原创粉丝点击