人工智能之Numpy与Pandas培训文档
创建时间:2018-09-09  访问量:3233  4  0

人工智能之Numpy与Pandas培训文档

NDArray介绍

一个ndarray其实就是一个多维数组,多维数组中的元素类型相同长度固定。数组中的元素是通过shape属性来确定多维数组的维度,每个维度是由N个正整数组成的元组来表示多维数组的形状,即shape属性。数组中元素的类型是由dtype属性指定的。与Python中的其他容器对象一样,可以通过索引或切片数组(例如,使用N个整数)以及通过ndarray的方法和属性来访问和修改ndarray的内容。

可以通过不同的ndarray来共享同一组数据,修改其中一个ndarray中内容也会影响与其共享底层数据的其它的ndarray中的内容。因此其中一个ndarray可以称为其它ndarray的视图,也可以是Python字符串或实现缓冲区或数组接口对象所拥有的内存视图。

创建NDArray

例:创建一个2x3的二维整型数组

>>> x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
>>> type(x)
<type 'numpy.ndarray'>
>>> x.shape
(2, 3)
>>> x.dtype
dtype('int32')

Numpy通过array方法创建一个多维数组,并将对象赋给x变量,array方法是在numpy库中的,我们之前是通过import numpy as np方法导入的numpy,因此要通过np.xxx的方法设用numpy库中的函数。array方法第一个参数是python的列表(即将python列表转成numpy数组),第二个参数是元素数据类型(用numpy库中定义的类型np.int32,32位整型)。也可以写成dtype=np.int32。

通过内建函数type()来查看numpy ndarray中元素的类型,type(x),结果是numpy.ndarray,即numpy的ndarray类型,通过对象的shape属性可以查看ndarray形态,它是一个元组(2,3),表示2行3列。如果创建的是一维ndarray,np.array([1,2,3],dtype=np.int32),那么它的shape属性输出是(3,),因为shape是元组,所以3后面是有一个逗号的。

通过ndarray对象的dtype属性可以查看元素的类型,x.dtype输入dtype('int32')。

NDArray的索引与切片

可以像Python列表那个索引NDArray

>>> # 获取第2行第3列的元素值
>>> x[1, 2]

切片可以创建NDarray的视图:

>>> y = x[:,1] # 第一维:号表示所示元素,第二维是1,表示第2列,因y是x中的第2列组成的ndarray
>>> y
array([2, 5]) # x中的第二列元素是[2,5]
>>> y[0] = 9 # 这个操作也会改x中对应的第1行第2列的值
>>> y
array([9, 5])
>>> x # 查看x的第1行第2列的值确实被改
array([[1, 9, 3],
       [4, 5, 6]])

 

通过numpy.ndarray方法构建一个多维数组

读者可以通过help(np.ndarray)内建函数看一下ndarray方法具体用法。下一节具体讲述。