In [3]:
%pylab
Numpy数组有水平组合、垂直组合和深度组合等多种组合方式,我们将使用vstack、dstack、hstack、column_stack、row_stack以及concatenate函数完成数组的组合
In [6]:
a = arange(9).reshape(3,3)
b = 2*a
print 'a: \n',a
print 'b: \n',b
In [7]:
hstack((a, b))
Out[7]:
In [8]:
concatenate((a,b), axis=1)
Out[8]:
In [9]:
vstack((a,b))
Out[9]:
In [10]:
concatenate((a,b), axis=0)
Out[10]:
In [11]:
dstack((a,b))
Out[11]:
In [12]:
oned = arange(2)
twice_oned = 2 * oned
column_stack((oned, twice_oned))
Out[12]:
In [13]:
column_stack((a,b))
Out[13]:
In [14]:
column_stack((a,b)) == hstack((a,b))
Out[14]:
In [15]:
row_stack((a,b))
Out[15]:
In [16]:
a
Out[16]:
In [17]:
#将数组沿水平方向分割为3个相同大小的子数组
hsplit(a, 3)
Out[17]:
In [18]:
#调用split函数,指定参数axis=1
split(a, 3, axis=1)
Out[18]:
In [19]:
vsplit(a, 3)
Out[19]:
In [20]:
split(a, 3, axis=0)
Out[20]:
In [21]:
c = arange(27).reshape(3,3,3)
In [22]:
c
Out[22]:
In [23]:
dsplit(c, 3)
Out[23]:
flat属性将返回numpy.flatiter对象,这是获得flatiter对象的唯一方式。 这个所谓的“扁平迭代器”可以让我们像遍历一维数组一样遍历任意的多维数组。
In [24]:
b = arange(4).reshape(2,2)
In [25]:
b
Out[25]:
In [26]:
f = b.flat
f
Out[26]:
In [27]:
for item in f:
print item
In [28]:
#使用flatiter对象直接获取一个数组的元素
b.flat[2]
Out[28]:
In [29]:
b.flat[[1,3]]
Out[29]:
In [30]:
#对flat属性赋值将导致整个数组的元素被覆盖
b.flat = 7
In [31]:
b
Out[31]:
In [34]:
b.flat[[1,3]] = 1
b
Out[34]:
In [35]:
b
Out[35]:
In [36]:
b.tolist()
Out[36]:
astype函数可以在转换数组时指定数据类型
In [37]:
b.astype(float)
Out[37]:
In [ ]: