前言:
1.开发环境:Anaconda3-5.2.0,点击这里下载所有版本
2.语言:python
3.如果对jupyter notebook的快捷键不知道如何使用,点击这里
1. NumPy入门
1.1 python中的数据类型
首先要了解一点,python是动态语言,Java/c是静态语言。这两者最明显的地方就在于java/c需要明确声明变量类型,而python中类型是动态推断的,也就是说在python中任何类型的数据可以指定给任何变量:
a = 5
a = "one"
标准的python实现是用C语言编写的,所以每个python对象都是一个伪c语言结构体。比如说上面的a=5,这里的a其实是一个指针,指向一个 c语言的复合结构体,查看python源代码:
struct _longobject {
long ob_refcnt;
PyTypeObject *ob_type;
size_t ob_size;
long ob_digit[1];
};
也就是说python3.X中的一个整型实际上包括4个部分。
- ob_refcnt是一个引用计数,帮python处理内存的分配和回收。
- ob_type将变量的类型编码
- ob_size指定接下来的数据成员的大小
- ob_digit 包含python变量表示的实际整型值
python可以创建一个整值型列表、字符串列表、或异构的列表:
L1 = [0,1,2,3,4,5]
L2 = ['0','1','2','3','4','5']
L3 = [True,"1",2.0,3]
python这种灵活性相较静态语言来说很高,但是为了获得这些类型,列表中的每一项必须包含各自的类型信息、引用计数和其他信息,也就是说每一项都是一个完整的python对象。
如果一个列表中只存储同一种类型数据,那么很多信息都是多余的,因此可以使用固定类型的NumPy式数组可以更有效的存储和操作数据。
python3.3之后可以使用内置的数组模块创建统一类型的密集数组:
>>> import array
>>> L = list(range(10))
>>> A = array.array('i',L)
>>> A
array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
这里的i是一个数据类型码,表示数据为整型。
1.2 从Python列表创建数组
更实用的则是NumPy包中的ndarray对象,python的数组对象提供了数组型数据的有效存储,而NumPy为该数据加上了高效的操作。
NumPy包标准别名是np,这里使用np.array从python列表创建数组:
In [1]: import numpy as np
#整型数组
In [2]: np.array([1,2,3,4,5])
Out[2]

本文介绍了Python数据分析库NumPy的基础知识,包括从Python列表创建数组、从头创建数组及其标准数据类型。强调了NumPy数组的效率优势,并通过示例展示了如何创建多维数组以及指定数据类型。
最低0.47元/天 解锁文章
580

被折叠的 条评论
为什么被折叠?



