python基本数据类型使用——list array narray

python ndarray数组和list列表的优势和区别

ndarray是numpy库的多维数组数据类型,ndarray和list的区别和优势如下:

'''ndarray数组和list列表的区别'''
#ndarray元素必须具有相同的数据类型,而list可以不同
a=np.array([0,1,'a'])
b=[0,1,'a']
print (type(a[0]))
print (type(b[0]))
#ndarray可与标量直接运算,数组之间也可矢量化运算
a=np.arange(0.0,1,0.1)
print (a+10,type(a))
b=np.arange(10,20,1)
print (a+b)

a=list(range(0,10,1))
b=list(range(10,20,1))
print (a+b)					#列表(list)相加是两个list前后连接在一起
#ndarray可对维数不同的矢量进行广播计算
a=np.arange(1,4)
b=np.array([[1,2,3],[4,5,6]])
print (a+b)

  

其他优势:
数组底层使用C中数组的存储方式(紧凑存储),节省内存空间。

数据结构" 数组 "存储多个元素时,是使用的最广泛一种数据结构

数组存储特点:连续空间上存储元素

优点:数组的随机访问性特别好。

验证内存:ndarray占用的内存要比列表少

 

 

23_Python列表和数组以及numpy.ndarray的区别和正确使用
Python在标准库中有一个内置类型的列表列表和一个数组数组。您也可以通过安装数值计算库NumPy使用多维数组numpy.ndarray。

将解释它们各自的区别和正确使用。

列表 - list
数组 - array
多维数组 - numpy.ndarray
列表与数组和numpy.ndarray之间的区别
列表 - list
内置式:无需导入即可使用
可以存储不同类型:也可以通过列表表示多维数组
尽管从狭义上讲它可能不同于数组,但列表通常足以进行简单的类似数组的处理。
l = ['apple', 100, 0.123]
print(l)
# ['apple', 100, 0.123]

l_2d = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
print(l_2d)
# [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

提取元素时,请使用[]指定位置(index)。

print(l[1])
# 100

print(l_2d[1])
# [3, 4, 5]

print(l_2d[1][1])
# 4

可以指定多个切片[:]。

print(l[:2])
# ['apple', 100]

  

使用内置函数max(),min(),sum(),len()计算最大值,最小值,总计,平均值等的示例。 len()是一个返回元素数的函数。

l_num = [0, 10, 20, 30]

print(min(l_num))
# 0

print(max(l_num))
# 30

print(sum(l_num))
# 60

print(sum(l_num) / len(l_num))
# 15.0

  


for语句进行循环处理的示例。

l_str = ['apple', 'orange', 'banana']

for s in l_str:
print(s)
# apple
# orange
# banana

  


数组 - array
导入并使用标准库的数组模块
只能存储相同类型
仅一维数组
可以使用与列表相同的方式来处理它,但对类型有限制。
与类型代码不匹配的类型的元素无法存储。

import array

arr_int = array.array('i', [0, 1, 2])
print(arr_int)
# array('i', [0, 1, 2])

arr_float = array.array('f', [0.0, 0.1, 0.2])
print(arr_float)
# array('f', [0.0, 0.10000000149011612, 0.20000000298023224])

# arr_int = array.array('i', [0, 0.1, 2])
# TypeError: integer argument expected, got float

  


与列表相同的处理是可能的。

print(arr_int[1])
# 1

print(sum(arr_int))
# 3

  


多维数组 - numpy.ndarray
安装和使用Numpy
只能存储相同类型
可以表示多维数组
丰富的数值计算方法和功能,可实现高速计算

import numpy as np

arr = np.array([0, 1, 2])
print(arr)
# [0 1 2]

arr_2d = np.array([[0, 1, 2], [3, 4, 5]])
print(arr_2d)
# [[0 1 2]
# [3 4 5]]

  


对于多维数组,请指定以逗号分隔的位置(索引)。也可以使用切片。

print(arr[1])
# 1

print(arr_2d[1, 1])
# 4

print(arr_2d[0, 1:])
# [1 2]

  


可以对每个元素(例如,平方根)执行操作或查找矩阵乘积。 打印(np.sqrt(arr_2d))

print(np.sqrt(arr_2d))
# [[0. 1. 1.41421356]
# [1.73205081 2. 2.23606798]]

arr_1 = np.array([[1, 2], [3, 4]])
arr_2 = np.array([[1, 2, 3], [4, 5, 6]])

print(np.dot(arr_1, arr_2))
# [[ 9 12 15]
# [19 26 33]]

 

nd表示N维(N-dimensional)。

python ndarray数组和list列表的优势和区别

https://blog.csdn.net/tianyongsen1/article/details/109287772

 

23_Python列表和数组以及numpy.ndarray的区别和正确使用

 

https://blog.csdn.net/qq_18351157/article/details/109469790?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

 

posted @ 2021-04-13 14:07  博客园—哆啦A梦  阅读(568)  评论(0)    收藏  举报