【F-python基础编程】Python数组操作 之 numpy.array & list生成数组 读取大小和列元素

版权声明:转载请声名出处,谢谢 https://blog.csdn.net/u010591976/article/details/81988945

python语言中,标准库中list生成的数组和numpy生成的数组numpy.arrary()不同点如下:
- 一个列表中可以存放不同类型的数据,包括int、float和str,甚至布尔型;而一个数组中存放的数据类型必须全部相同,int或float。
- 因为列表可以存放不同类型的数据,列表中每个元素的大小是不确定的,因此不支持一次性读取一列,即使是对于标准的二维数字列表。list取一列元素a[:,0]会出现TypeError: list indices must be integers or slices, not tuple
- ​list中的数据类型保存的是数据的存放的地址,并非数据。增加了存储和消耗cpu,array1=numpy.array([1,2,3,4])只存放数据,读取和计算更加方便,因此在做数组计算时,应优先选择使用numpy.array进行数组操作,节约内存操作方便,可以直接调用numpy中的函数。

#list读取行元素或列元素和大小
a = [
    [1,1,1],
     [2,2,2]
]
print(a)
print(len(a))

#list取一行,可以得到列数
n = len(a[0])
print(a[0])
print(n)

#list取一列,报错TypeError: list indices must be integers or slices, not tuple
# m = len(a[:,0])
# print(a[:,0])
# print(m)

#list遍历的方法取一列的元素,可以计算得到行数
b = [b[0] for b in a]
m = len(b)
print(b)
print(m)

输出:

[[1, 1, 1], [2, 2, 2]]
2
[1, 1, 1]
3
[1, 2]
2

而对于numpy库生成的数组,可以直接获取数组的行元素和列元素:

#numpy.array读取行元素或列元素和大小
import numpy as np
a = np.array([
     [1,1,1],
     [2,2,2]
])
print(a)

#计算大小
print(len(a)) #返回值为行数
print(a.size) #返回值为整数,行个数*列个数
print(a.shape) #返回值为(行个数,列个数)

#取一行,得列数
n = len(a[0])
print(a[0])
print(n)
#取一列,正确,得行数
m = len(a[:,0])
print(a[:,0])
print(m)

输出:

[[1 1 1]
[2 2 2]]
2
6
(2, 3)
[1 1 1]
3
[1 2]
2

参考博客:
https://blog.csdn.net/jacke121/article/details/77676441
https://blog.csdn.net/songyunli1111/article/details/78109976
https://blog.csdn.net/bbbeoy/article/details/72576863

猜你喜欢

转载自blog.csdn.net/u010591976/article/details/81988945
今日推荐