python 列表与数组

本文对比了Python列表和Numpy数组的特性,包括数据类型、存储效率和输入输出性能。Numpy数组在科学计算中表现出优越的性能,而列表在通用性上更胜一筹。通过示例展示了列表的操作,如添加、删除元素,以及排序。同时,介绍了Numpy数组的创建方法,如使用list或tuple初始化。文章强调了在特定场景下选择合适的数据结构的重要性。
摘要由CSDN通过智能技术生成

       列表(list)是python的内置数据类型,列表中元素的数据类型不必相同的。python本身并没有数组(array)类型,但是它的Numpy库中有数组(array)类型。而数组(array)中的元素数据类型必须全部相同。

        在列表(list)中保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储开销和降低了访问效率。

1. 二者都可以用于处理多维数组

       Numpy中的ndarray对象处理多维数组是很自然的。而列表的嵌套可以实现多维数组。

2. 存储效率和输入输出性能不同

       Numpy专门针对数组的操作和运算进行了设计,存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。

3. 元素数据类型

       通常,Numpy数组中的所有元素的类型都必须相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代码使用方面比Python列表简单的多。

接下来看一个list的例子

class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    
    def __str__(self):
        return self.name+":"+str(self.age)
    
allElement = []
allElement.append("aaa")
allElement.insert(0,"bbb") 
allElement.append(123)
allElement.append(Student("zs",18))

del allElement[0]
allElement.remove("aaa")
poped_Element = allElement.pop(0)

print(poped_Element)
print(allElement[0])

列表有关顺序的一个例子

motorcycles = ["honda","yamaha","suzuki","ducati"]
print("原始顺序",motorcycles)
motorcycles.sort()
#print(sorted(motorcycles))  #临时顺序
print("排序后顺序",motorcycles)

motorcycles.reverse()
print("翻转后顺序",motorcycles)

4. array的创建

Numpy数组创建时,参数既可以是列表list,也可以是元组tuple。例如:

a=np.array((1,2,3))  #参数是tuple
b=np.array([6,7,8])   #参数是list
c=np.array([[1,2,3],[4,5,6]])  #参数是二维list

除此之外,还可以使用numpy提供的其他方法创建一个数组,例如:

arr1=np.arange(1,10,1)
arr2=np.linspace(1,10,10)

np.arange(a,b,c)表示产生从a到b不包括b,间隔为c的一个array,数据类型默认是int32。但是linspace(a,b,c)表示的是把a-b平均分成c分,它包括b。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值