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

学习Python数据分析(2.1)----Numpy数组以及数组的操作

2017-12-18 09:49 826 查看
学习了几天,第二章,关于NumPy数组的基础部分,这里做一个简单摘要;该章节主要是关于数组的多种操作——组合、数据类型、设置维度和分割等。

1 . Numpy 数组对象

创建一个3X3的多维数组,并显示该数组维度

>>> from numpy import *
>>> m=array([arange(3),arange(3),arange(3)])
>>> m
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2]])
>>> m.shape
(3, 3)
>>>


2 . Numpy数据类型

Python支持的数据类型有整型、浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy添加了很多其他的数据类型。在实际应用中,我们需要不同精度的数据类型,它们占用的内存空间也是不同的。在NumPy中,大部分数据类型名是以数字结尾的,这个数字表示其在内存中占用的位数。

数据类型转换

>>> float64(36)
36.0
>>> int8(36.0)
36
>>> bool(36)
True
>>> bool(0)
False
>>> float(True)
1.0
>>> float(False)
0.0
>>>


创建自定义数据类型

>>> t=dtype([('name', str_, 40), ('numitems', int32), ('price',float32)])
>>> t
dtype([('name', '<U40'), ('numitems', '<i4'), ('price', '<f4')])
>>>


查看数据类型

>>> t['name']
dtype('<U40')
>>>


3 . 一维数组的切片

>>> from numpy import *
>>> a = arange(16)
>>> a[4:7]
array([4, 5, 6])
>>>


4 . 多维数组的切片和索引

>>> b = arange(24).reshape(2,3,4)
>>> b.shape
(2, 3, 4)
>>> b
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]]])
>>>


5 . 数组的组合

>>> a = arange(16).reshape(4,4)
>>> a
array([[ 0,  1,  2,  3],
[ 4,  5,  6,  7],
[ 8,  9, 10, 11],
[12, 13, 14, 15]])
>>> b=2*a
>>> b
array([[ 0,  2,  4,  6],
[ 8, 10, 12, 14],
[16, 18, 20, 22],
[24, 26, 28, 30]])
>>>


水平组合

>>> hstack((a,b))
array([[ 0,  1,  2,  3,  0,  2,  4,  6],
[ 4,  5,  6,  7,  8, 10, 12, 14],
[ 8,  9, 10, 11, 16, 18, 20, 22],
[12, 13, 14, 15, 24, 26, 28, 30]])
>>> concatenate((a,b),axis=1)
array([[ 0,  1,  2,  3,  0,  2,  4,  6],
[ 4,  5,  6,  7,  8, 10, 12, 14],
[ 8,  9, 10, 11, 16, 18, 20, 22],
[12, 13, 14, 15, 24, 26, 28, 30]])
>>>


6 . 数组的属性

>>> b
array([[ 0,  2,  4,  6],
[ 8, 10, 12, 14],
[16, 18, 20, 22],
[24, 26, 28, 30]])


ndim属性,给出数组的维数,或数组轴的个数

>>> b.ndim
2
>>>


size属性,给出数组元素的总个数

>>> b.size
16


itemsize属性,给出数组中的元素在内存中所占字节数

>>> b.itemsize
4


这部分主要是对Numpy有个概念性的认识和掌握,在以后实际需要的时候,能够想到使用Numpy 序列。

参考 《Numpy Beginner’s Guide–Second Edition》Ivan Idris

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