Python学习之Numpy速成记——基础篇(上)

                                                                               作者丨琳儿

                                                        来源丨医数思维云课堂(ID:Datamedi)   


01 基本功能

快速高效的多维数组对象ndarray。

用于对数组执行元素级计算以及直接对数组执行数学运算的函数

用于读写硬盘上基于数组的数据集的工具

线性代数运算、傅里叶变换,以及随机数生成

用于将C、C++、Fortran代码集成到Python的工具

除了为Python提供快速的数组处理能力,NumPy在数据分析方面还有另外一个主要作用,即作为在算法之间传递数据的容器。

标准Python的列表(list)中,元素本质是对象。如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费内存和CPU。

因此,Numpy提供了ndarray(N-dimensional array object)对象:存储单一数据类型的多维数组。

02 基础知识

1.NumPy 数组

(1) 使用NumPy中的arange()函数来创建包含0~n 的整数的NumPy数组。

代码中的arange函数前面有一个前缀numpy,表明该函数是从NumPy模块导入的。

test_1=np.arange(5)

print(test_1)

(2) NumPy数组的下标从0开始的。使用dtype()获得数据类型

print(test_1.dtype)

(3) 数组的shape属性返回一个元组(tuple),元组中的元素即为NumPy数组每一个维度上的大小。上面例子中的数组是一维的,因此元组中只有一个元素。

print(test_1.shape)

(4) 创建指定长度的全0数组(zeros),全1数组(ones),没有任何具体数值的数组(empty),创建单位矩阵eye()

print(np.zeros(3))

print(np.ones([2,3]))

print(np.empty([3,3],dtype=int))

print(np.eye(3,3))

参数:

shape : 整数或者整型元组定义返回数组的形状;

dtype : 数据类型,可选定义返回数组的类型。

order : {'C', 'F'}, 可选规定返回数组元素在内存的存储顺序:C(C语言)-rowmajor;F(Fortran)column-major。

2.创建多维数组

(1)创建一个多维数组; 显示该数组的维度。

arange函数创建的数组作为列表元素,把这个列表作为参数传给array()函数,从而创建了一个2×2的数组。

test_2=np.array([np.arange(2), np.arange(2)])

print(test_2)

print(test_2.shape)

(2)选取数组元素:对于数组a,只需要用a[m,n]选取各数组元素,其中m和n为元素下标,对应的位置如下表所示。

a=np.array([[1,2], [3,4]])

print(a)

print(a[0,0])

print(a[0,1])

3.NumPy 数据类型

Python支持的数据类型有整型、浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy添加了很多其他的数据类型。

在实际应用中,我们需要不同精度的数据类型,它们占用的内存空间也是不同的。

在NumPy中,大部分数据类型名是以数字结尾的,这个数字表示其在内存中占用的位数。下面的表格(整理自NumPy用户手册)列出了NumPy中支持的数据类型。

(1)每一种数据类型均有对应的类型转换函数:

float64(42)

int8(42.0)

bool(42)

bool(0)

bool(42.0)

float(False)

float(True)

print(np.float64(42))

print(np.int8(42.0))

print(bool(42))

(2)在NumPy中,许多函数的参数中可以指定数据类型,通常这个参数是可选的:

(3)复数是不能转换为整数的

np.complex(2,1)

np.int8(np.complex(2,1))

4.数据类型对象

(1)数据类型对象是numpy.dtype类的实例。如前所述,NumPy数组是有数据类的,更确切地说,NumPy数组中的每一个元素均为相同的数据类型。

数据类型对象可以给出单个数组元素在内存中占用的字节数,即dtype类的itemsize属性:a.dtype.itemsize。

(2)NumPy可以使用字符编码来表示数据类型,这是为了兼容NumPy的前身Numeric。

应该优先使用dtype对象来表示数据类型,而不是这些字符编码。

np.arange(7, dtype='f')

np.arange(7, dtype='D')

(3)完整的NumPy数据类型列表可以在sctypeDict.keys()中找到。

(4)获取数据类型的字符编码:

t = np.dtype('Float64')

t.char

(5)创建自定义数据类型:

自定义数据类型是一种异构数据类型,可以当做用来记录电子表格或数据库中一行数据的结构。

作为示例,我们将创建一个存储商店库存信息的数据类型。

其中,我们用一个长度为40个字符的字符串来记录商品名称,用一个32位的整数来记录商品的库存数量,最后用一个32位的单精度浮点数来记录商品价格。

下面是具体的步骤。

t = np.dtype([('name', np.str),('numitems', np.int32),('price',np.float32)])

print(t)

t['name']

Python学习之Numpy的内容就讲到这里,期待我们的再次相约。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容