当前位置:   article > 正文

python数组与列表的一个区别_python中数组和列表的区别

python中数组和列表的区别

最近在尝试自己绘制ROC曲线上踩了个小坑,记录一下

绘制ROC曲线参考博客

# Import some data to play with
iris = datasets.load_iris()
X = iris.data
y = iris.target
 
##变为2分类
X, y = X[y != 2], y[y != 2]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

看代码的时候,个人理解是把标签里面0,1的标签改为true(1)标签是2的标签则改为false(0),就是把其中的两类标签合并成一类。于是自己动手尝试了一下。

x = [1,2,3,4,5,6]
y = [0,0,1,1,2,2]
y!=2
Out[4]: True
x[y!=2]
Out[5]: 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

发现和想象的不太一样,y!=2输出竟然只是一个true,而不是一个true数组。

后来使用debug模式才发现鸢尾花数据集其实是一个矩阵。而我测试创建的xy是一个列表。
在这里插入图片描述
列表与数组的区别

  1. 列表list与数组array的定义:

列表是由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间没有任何关系;

Python中的列表(list)用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。

数组也就是一个同一类型的数据的有限集合。

  1. 列表list与数组array的相同点:

    a. 都可以根据索引来取其中的元素;

  2. 列表list与数组array的不同点:

    a.列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;

    b.列表list不可以进行数学四则运算,数组array可以进行数学四则运算;

    c.相对于array,列表会使用更多的存储空间。

因此再次尝试:

import numpy as np
x = np.array([1,2,3,4,5,6])
y = np.array([0,0,1,1,2,2])
y != 2
Out[10]: array([ True,  True,  True,  True, False, False])
x[y!=2]
Out[12]: array([1, 2, 3, 4])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

成功二分类
总结:
对于列表对象,直接等式判断是对整个列表进行判断。
对于矩阵对象,等式判断会对数组内的每一个元素进行判断。
大概是因为列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/549059
推荐阅读
相关标签
  

闽ICP备14008679号