热线电话:13121318867

登录
2023-08-09 阅读量: 453
numpy数组的函数

数组自身有哪些函数可操作:

In [39]: len(arr4) #返回数组有多少行

Out[39]: 3

In [40]: arr3

Out[40]:

array([[ 0, 0, 0, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144]])

In [41]: arr4

Out[41]:

array([[ 1, 2, 3, 4],

[ 5, 6, 7, 8],

[ 9, 10, 11, 12]])

In [42]: np.hstack((arr3,arr4))

Out[42]:

array([[ 0, 0, 0, 3, 1, 2, 3, 4],

[ 5, 8, 13, 21, 5, 6, 7, 8],

[ 34, 55, 89, 144, 9, 10, 11, 12]])

横向拼接arr3和arr4两个数组,但必须满足两个数组的行数相同。

In [43]: np.vstack((arr3,arr4))

Out[43]:

array([[ 0, 0, 0, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144],

[ 1, 2, 3, 4],

[ 5, 6, 7, 8],

[ 9, 10, 11, 12]])

纵向拼接arr3和arr4两个数组,但必须满足两个数组的列数相同。

In [44]: np.column_stack((arr3,arr4)) #与hstack函数具有一样的效果

Out[44]:

array([[ 0, 0, 0, 3, 1, 2, 3, 4],

[ 5, 8, 13, 21, 5, 6, 7, 8],

[ 34, 55, 89, 144, 9, 10, 11, 12]])

In [45]: np.row_stack((arr3,arr4)) #与vstack函数具有一样的效果

Out[45]:

array([[ 0, 0, 0, 3],

[ 5, 8, 13, 21],

[ 34, 55, 89, 144],

[ 1, 2, 3, 4],

[ 5, 6, 7, 8],

[ 9, 10, 11, 12]])

reshape()函数和resize()函数可以重新设置数组的行数和列数:

In [46]: arr5 = np.array(np.arange(24))

In [47]: arr5 #此为一维数组

Out[47]:

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])

In [48]: a = arr5.reshape(4,6)

In [49]: a

Out[49]:

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]])

通过reshape函数将一维数组设置为二维数组,且为4行6列的数组。

In [50]: a.resize(6,4)

In [51]: a

Out[51]:

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]])

通过resize函数会直接改变原数组的形状。

数组转换:tolist将数组转换为列表,astype()强制转换数组的数据类型,下面是两个函数的例子:

In [53]: b = a.tolist()

In [54]: b

Out[54]:

[[0, 1, 2, 3],

[4, 5, 6, 7],

[8, 9, 10, 11],

[12, 13, 14, 15],

[16, 17, 18, 19],

[20, 21, 22, 23]]

In [55]: type(b)

Out[55]: list

In [56]: c = a.astype(float)

In [57]: c

Out[57]:

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.]])

In [58]: a.dtype

Out[58]: dtype('int32')

In [59]: c.dtype

Out[59]: dtype('float64')


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据