直接提取会报错,把array数组转换成list,即可提取,使用numpy转换
步骤详解1、直接提取尝试:
group=[[1,2],[2,3],[3,4]]
#提取第一列元素
print(group[:,1])
#Out:TypeError: list indices must be integers or slices, not tuple
2、使用numpy转换:
import numpy as np
group=[[1,2],[2,3],[3,4]]
#numpy转化
ar=np.array(group)
print(ar[:,1])
#Out:[2 3 4]
拓展内容numpy详解
Numpy对象是数组,称为ndarray
维度(dimensions)称作轴(axes),轴的个数叫做秩(rank)。注:有几级中括号就有几个维度
一、ndarray.attrs:
ndarray.ndim 秩
ndarray.shape 例如一个2排3列的矩阵,它的shape属性是(2,3)
ndarray.size 数组元素的总个数
ndarray.dtype 元素类型,NumPy提供自己的数据类型
ndarray.itemsize 数组中每个元素的字节大小
二、数组创建函数:
array
asarray将输入转换成ndarray
arange
ones
zeros
empty 只分配内存空间不填充任何值
eye 创建N*N单位矩阵(对角线为1)
三、数组和标量之间的运算
numpy数组的一个特点,不用编写循环就可对数据执行批量运算,这通常称作矢量化(vectorization)。
四、基本的索引和切片
numpy数组的索引是一个内容丰富的主题,因为选取数据子集或单个元素的方式有很多。这里我仅详细介绍常用的方法,对于高级功能的方式我列举名称,读者可以等到要用的时候自行查阅资料。
def sort(a):for k in range(len(a)):
(a[k][0],a[k][1]) = (a[k][1],a[k][0])
a.sort()
for k in range(len(a)):
(a[k][0],a[k][1]) = (a[k][1],a[k][0])
a = [[1,2,4],[6,5,6],[2,5,9]]
sort(a)
print(a)
第一个问题:查询两个list中第一列元素element_1 = list1[0]
element_2 = list2[0]
print("list1中第一列元素:{e1}, \n ,list2中第一列元素:{e2}".format(e1 = element_1, e2 = element_2))
第二个问题:查询两list中第一列一样的元素(思路就是遍历list2,然后将list2中与list1元素一样的元素打印出来,用if in判断即可)
for i in element_2:
if i in element_1:
print(i)
第三个问题:查询两lits中第一个list中第一列存在而第二个list中第一列不存在的(思路与第二问类似,用if not in判断即可,只是这里需要两个list相互判断)
for i in element_1:
if i not in element_2:
print(i)
for j in element_2:
if j not in element_1:
print(j)