学习了几天,第二章,关于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>