python数组略记

在Python中存储⼀个整数要⽐在像C这样的编译语⾔中存储⼀个整数要有损耗

要让列表能够容纳不同的类型,每个列表中的元素都必须带有⾃⼰的类型信息、引⽤计数器和其他的信息,⼀句话,⾥⾯的每个元素都是⼀个完整的Python的对象。如果在所有的元素都是同⼀种类型的情况下,这⾥⾯绝⼤部分的信息都是冗余的:如果我们能将数据存储在⼀个固定类型的数组中,显然会更加⾼效。

数组

数组仅仅包含⼀个指针指向⼀块连续的内存空间。⽽Python列表,含有⼀个指针指向⼀块连续的指针内存空间,⾥⾯的每个指针再指向内存中每个独⽴的Python对象,如我们前⾯看到的整数。列表的优势在于灵活:因为每个元素都是完整的Python的类型对象结构,包含了数据和类型信息,因此列表可以存储任何类型的数据。NumPy使⽤的固定类型的数组缺少这种灵活性,但是对于存储和操作数据会⾼效许多。

Python的固定类型数组 array.array('i', List) np.array()

与Python的列表不同,NumPy数组是固定类型的。这意味着,如果你试图将⼀个浮点数值放⼊⼀个整数型数组,这个值会被默默地截成整数。

当step为负值时,将会在数组⾥反向的取元素,这是将数组反向排序最简单的⽅法

对于⼤数据量的计算,有时指定存储输出数据的数组是很有⽤的。指定输出结果的内存位置能够避免创建临时的数组。所有的ufuncs都能通过指定out 参数来指定输出的数组。

任何情况下,当你操作NumPy数组时,你都应该使⽤NumPy的聚合函数来代替Python的內建函数。

posted @ 2021-08-13 16:12  兔子春  阅读(33)  评论(0编辑  收藏  举报