数组与列表的异同

"""
数组中的元素只能是同种数据类型;列表中的元素可以不是同一种数据类型
"""

from typing import List
import numpy as np
LIST = [1,23,4,5]
ARR = np.array(LIST) # 会报错,没报错啊,这数组哎,列表直接转换数组就行么
print(LIST,ARR)
print('数据类型',type(LIST),type(ARR))
LIST[-1] = 'sjss'
# 下方代码报错是由于一旦创建了一个数组,他的dtype也就固定了,它只能存储相同类型的元素.如何确定相同类型的元素可用dtype()函数来确定
ARR[-1] = 11.22 # ValueError: invalid literal for int() with base 10: 'sjss'
print(ARR,'\n','数组元素的数据类型',ARR.dtype) # 而输入的是浮点型数据会自动转换为整型,原数组元素的数据类型是int

# 只要元素的总数不变,数组的形状就可以随时改变。例如想要一个数字从0增加的2x4数组
arr1 = np.arange(8) # [0 1 2 3 4 5 6 7];有点类似于range函数
arr2 = np.arange(8).reshape(2,4) # 将数组转换成2行4列
print("使用reshape转化后",arr2)

# 改变前后具有相同的记忆
arr3 = arr1.reshape(4,2)
arr1[0] = 1000
print(arr1,arr3)
arr4 = arr1.copy() # copy的话arr4并没有改变,深度复制么
arr1[0] = 0
print(arr1,arr4)



posted @ 2021-09-02 19:17  索匣  阅读(633)  评论(0编辑  收藏  举报