首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析-numpy详细教程一

NumPy是高性能科学计算和数据分析的基础包,这是一个处理数组的强大模块,本期将会从如下几个方面介绍numpy模块:

1、数组的创建

2、数组属性和函数

3、数组元素的获取--索引、切片

一、创建数组

创建数组最简单的办法就是使用array函数,它接受一切序列型对象,比如列表和元组等。

1、一维数组的创建

1.1、通过numpy模块中的arange函数创建一维有序数组

#通过arange函数创建一维数组

In [1]:importnumpyasnp

In [2]:arr1=np.arange(6)

In [3]:arr1

Out[3]:array([,1,2,3,4,5])

1.2、通过numpy模块中的array函数创建一维数组

#通过列表序列创建一维数组

In [4]:arr2=np.array([2,3,4])

In [5]:arr2

Out[5]:array([2,3,4])

#通过元组序列创建一维数组

In [6]:arr3=np.array((6,7,8,9))

In [7]:arr3

Out[7]:array([6,7,8,9])

2、二维数组的创建

二维数组的创建,本质是列表套列表或者元组套元组,如下所示:

#列表套列表创建二维数组

In [8]:arr4=np.array([[1,2,3,4],[5,6,7,8]])

In [9]:arr4

Out[9]:

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

[5,6,7,8]])

#元组套元组创建二维数组

In [10]:arr5=np.array(((1,2,3,4),(5,6,7,8),(9,10,11,12)))

In [11]:arr5

Out[11]:

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

[5,6,7,8],

[9,10,11,12]])

3、特殊数组的创建

除了array函数之外,还有一些函数也可以创建数组,比如,zeros和ones分别可以创建指定长度或形状全0或全1数组。要用这些方法创建多维数组,只需要传入一个表示形状的元组即可,示例如下:

#创建全1的一维数组

In [12]:arr6=np.ones(3)

In [13]:arr6

Out[13]:array([1.,1.,1.])

#创建全1的二维数组

In [14]:arr7=np.ones((3,4))

In [15]:arr7

Out[15]:

array([[1.,1.,1.,1.],

[1.,1.,1.,1.],

[1.,1.,1.,1.]])

#创建全的一维数组

In [16]:arr8=np.zeros(3)

In [17]:arr8

Out[17]:array([0.,0.,0.])

#创建全的二维数组

In [18]:arr9=np.zeros((3,4))

In [19]:arr9

Out[19]:

array([[0.,0.,0.,0.],

[0.,0.,0.,0.],

[0.,0.,0.,0.]])

二、数组属性和函数

2.1、当一个数组创建好之后,我们更多的想知道数组本身有哪些属性。

In [1]:importnumpyasnp

In [2]:arr=np.arange(1,13).reshape(3,4)

In [3]:arr

Out[3]:

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

[5,6,7,8],

[9,10,11,12]])

In [4]:arr.shape#返回数组的行数和列数

Out[4]:(3,4)

In [5]:arr.size#返回数组元素的个数

Out[5]:12

In [6]:arr.dtype#返回数组中元素数据类型

Out[6]:dtype('int32')

In [7]:arr.ndim#返回数组的维数

Out[7]:2

In [8]:arr.T#返回数组的转置结果

Out[8]:

array([[1,5,9],

[2,6,10],

[3,7,11],

[4,8,12]])

2.2、介绍完数组属性之后,接下来我们来看看数组自身有哪些函数可操作

1、将一维数组转换成二维数组,通过reshape函数重置数组的行数和列数

In [1]:importnumpyasnp

In [2]:arr=np.arange(1,13)#创建一维数组

In [3]:arr

Out[3]:array([1,2,3,4,5,6,7,8,9,10,11,12])

# 一维数组转换为二维数组

In [4]:arr1=arr.reshape(4,3)

In [5]:arr1

Out[5]:

array([[1,2,3],

[4,5,6],

[7,8,9],

[10,11,12]])

2、数组行数的统计,可以采用len函数

#数组行数的统计

In [6]:len(arr1)#返回数组的行数

Out[6]:4

3、数组转换成列表,采用tolist函数

#数组转换成列表

In [7]:arr2=arr1.tolist()

In [8]:arr2

Out[8]:[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

4、数组数据类型的转换,采用astype函数强制转换

#数组数据类型的转换

In [9]:arr3=arr1.astype(float)

In [10]:arr3

Out[10]:

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

[4.,5.,6.],

[7.,8.,9.],

[10.,11.,12.]])

In [11]:arr1.dtype

Out[11]:dtype('int32')

In [12]:arr3.dtype

Out[12]:dtype('float64')

三、数组元素的获取--索引、切片

一维数组元素的获取与列表元素的获取方式一样,如下所示:

In [1]:importnumpyasnp

In [2]:arr=np.arange(6)

In [3]:arr

Out[3]:array([,1,2,3,4,5])

In [4]:arr[3]#获取第4个元素

Out[4]:3

In [5]:arr[:3]#获取前3个元素

Out[5]:array([,1,2])

In [6]:arr[3:]#获取第4个元素以及之后的所有元素

Out[6]:array([3,4,5])

In [7]:arr[-1]#获取最后1个元素

Out[7]:5

In [8]:arr[-2:]#获取最后2个元素

Out[8]:array([4,5])

In [9]:arr[::2]#从第1个元素开始,获取步长为2的所有元素

Out[9]:array([,2,4])

二维数组元素的获取,如下所示:

In [1]:importnumpyasnp

In [2]:arr=np.arange(12).reshape(3,4)

In [3]:arr

Out[3]:

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

[4,5,6,7],

[8,9,10,11]])

In [4]:arr[1]# 返回数组的第2行

Out[4]:array([4,5,6,7])

In [5]:arr[:2]#返回数组的前2行

Out[5]:

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

[4,5,6,7]])

In [6]:arr[[,2]]#返回指定的第1行和第3行

Out[6]:

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

[8,9,10,11]])

In [7]:arr[:,]#返回数组的第1列

Out[7]:array([,4,8])

In [8]:arr[:,-2:]#返回数组的最后2列

Out[8]:

array([[2,3],

[6,7],

[10,11]])

In [9]:arr[:,[,2]]#返回数组的第1列和第3列

Out[9]:

array([[,2],

[4,6],

[8,10]])

In [10]:arr[1,2]#返回数组中第2行第3列对应的元素

Out[10]:6

此次numpy分享差不多结束了,下期将继续分享该模块的其它内容,若我写的对大家有所帮助,麻烦大家给个鼓励或者关注一下。

学习与分享,关注小号

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225G0GQHB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券