python && numpy : list VS np.array

Python数组选型指南:list、array与numpy实战对比 数组是编程中最基础的数据结构概念,但在Python中并不存在传统意义上的内置数组。理解其本质需从内存布局与计算模型出发:list是对象指针数组,适合动态混合类型;array模块提供紧凑一维数值存储,优化内存带宽;而NumPy ndarray则是面向科学计算的向量化引擎,依托连续内存、步长机制和C层SIMD加速。三者差异核心在于数据同质性、内存效率与运算表达力。当处理传感器流、金融行情或AI预处理等真实场景时,选型取决于数据规模、计算强度与部署约束——本文结合金融量化、工业IoT与边缘AI案例,解析何时该用l 阅读详情

直接上代码:

"""
list  是python的内置函数
array 是在numpy包中定义的

在应用中array比list具有更多的属性函数,使用更灵活,但是要求内部元素数据类型相同
list包容性更好,可以同时包含各种类型数据

-->如果是处理数字数据,建议将list转为np.array
"""

import numpy as np

a = [[1,2,3],[4,5,6]]
# a = [[1,2,3],[4,5,'t']]
b = np.array(a)

print('\n#####--data--#######')
print(a)   ## 列表不同元素间是“,”,输出 [[1, 2, 3], [4, 5, 6]]
print(b)   ## 列表不同元素间是“ ”空格,输出 [[1 2 3]
                                      ##  [4 5 6]]

print('\n#####--type--#######')
print(type(a)) ##<class 'list'>
print(type(b)) ##<class 'numpy.ndarray'>

print('\n#####--ndim--#######')
# print(a.ndim)
print(b.ndim)

print('\n#####--shape--#######')
# print(a.shape) ## AttributeError: 'list' object has no attribute 'shape'
print(b.shape)  ## (2, 3)

print('\n#####--reshape--#######')
# print(a.reshape) ## AttributeError: 'list' object has no attribute 'reshape'
print(b.reshape(1,3,2))

print('\n#####--dtype--#######')
# print(a.dtype) ## AttributeError: 'list' object has no attribute 'dtype'
print(b.dtype)  ## int64 

print('\n#####--len--#######')
print(len(a))  ## 2
print(len(b))  ## 2

print('\n#####--size--#######')
# print(a.size)  ## AttributeError: 'list' object has no attribute 'size'
print(b.size)    ## 6

print('\n#####--调用1--#######')
print(a[0])     ## [1, 2, 3]
print(b[0])     ## [1 2 3]

print('\n#####--调用2--#######')
print(a[0][:])   ## [1, 2, 3]
print(b[0][:])  ## [1 2 3]

print('\n#####--调用3--#######')
# print(a[0,:]) #TypeError: list indices must be integers or slices, not tuple
# print(a[0,1]) #TypeError: list indices must be integers or slices, not tuple
print(b[0,:])   ## [1 2 3]


print('\n#####--互相转换--#######')
b = np.array(a)
a_ = b.tolist()
print(a)
print(b)
print(a_)

 

Python字典序列化:NumPy高效存储方案对比与实战 数据序列化是将内存中的数据结构转换为可存储或传输格式的过程,其核心原理在于实现数据的高效持久化与跨平台交换。在Python生态中,面对包含NumPy数组的字典数据结构时,传统的pickle和json模块在性能、兼容性或类型支持上存在局限。NumPy提供的.npy/.npz二进制格式,凭借其高效的数组存储机制,成为处理科学计算中间结果和模型参数的优选方案。本文聚焦于np.savez、pickle+np.save及joblib三种主流技术方案,通过对比其数据类型支持、性能表现与安全特性,为机器学习模型参数保存、 阅读详情

相关推荐

Python字典与NumPy数组混合数据的高效序列化方案

在数据处理与科学计算中,序列化是将内存中的数据结构转换为可存储或传输格式的关键技术。其核心原理是通过特定的编码规则,将对象状态持久化,以便后续重建。对于Python开发者而言,处理包含NumPy数组的复杂字典时,传统的pickle模块在I/O性能和存储效率上存在瓶颈,而JSON格式则无法直接序列化数组对象。一种高效的技术方案是结合NumPy的二进制I/O能力与Python的对象序列化机制,通过创建dtype=object的数组来封装字典结构,利用np.save函数进行保存。这种方法在机器学习模型参数保存、实

circularr9834的博客 350

Python内置函数的时间复杂度以及np.array与list的内存大小比较

Python内置函数的时间复杂度以及np.array与list的内存大小比较

weixin_42761416的博客 1825

NumPy np.unique() 函数深度解析:从去重到多维数组与性能优化

在数据处理中,去重与唯一值识别是基础且高频的操作,其核心原理在于高效识别并提取数据集中的不重复元素。NumPy 作为 Python 科学计算的核心库,其 np.unique() 函数通过底层优化的排序算法实现这一功能,不仅执行效率远超 Python 原生方法,更通过灵活的轴操作与参数组合,为数据清洗、特征编码和统计分析提供了强大的技术支持。该函数在数据清洗、标签编码、频次统计等场景中价值显著,尤其擅长处理多维数组和结构化数据。本文将深入探讨 np.unique() 在数据清洗与特征工程中的实际应用,并结合性

weixin_30460489的博客 324

python 原生list 和 numpy数组比较

numpy中的数组相除不同于列表解析式,而是通过广播机制实现的逐元素相除。广播原理

weixin_51142919的博客 716

Numpy核心知识点总结上

1. numpy.array 基础 1.1 Python List vs. Python array vs. Numpy array 1.2 初始numpy.array 2. 创建 numpy.array 2.1 Python range vs. np.arange vs. np.linspace 2.2 随机函数 2.2.1 np.random.randint 2.2.2 np.random.random 2.2.3 np.random.normal 2.2.4 np.random.seed 2.3 其他

herosunly的博客 6万+

深入博通PEX89000内部:那颗ARM CPU和Synthetic Mode到底能玩出什么花样?

本文深入解析博通PEX89000系列PCIe交换芯片内置的ARM CPU与Synthetic Mode技术,揭示其在AI计算和数据中心的智能潜能。通过ARM Cortex CPU的实时控制和Synthetic Mode的自治网络功能,PEX89000实现了GPU集群的动态拓扑重组和资源池化,大幅提升AI训练效率。文章还探讨了该技术在软件定义数据平面和弹性AI架构中的创新应用。

weixin_30776273的博客 210

ndarray与Python原生list运算效率对比

为什么还需要使用Numpy的ndarray呢? import random import time import numpy as np a = [] for i in range(1000000): a.append(random.random()) # 通过%time魔法方法, 查看当前行的代码运行一次所花费的时间 %time sum1=sum(a) b=np.array(a) %time sum2=np.sum(b) #输出结果 Wall time: 3.98 ms Wall ti

缘 源 园 932

Calibre PEX提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文深入解析Calibre PEX工具中hcell与xcell文件的协同工作机制,提供模块级寄生参数提取方案。通过实战案例和避坑指南,帮助工程师精准屏蔽已验证IP模块,提升仿真效率和数据一致性,适用于65nm以下工艺节点的复杂SoC设计。

weixin_29275257的博客 626

numpy.array 和 array以及list的效率对比

#coding:utf-8 import timeitcommon_for = """ for d in data: s += d """common_sum = """ sum(data) """common_numpy_sum = """ numpy.sum(data) """def timeit_li

coordinate的博客 7705

高通平台 5G RF调试总结

目录: 1.QRCT4的使用 2.RFC配置 3.5G CA 配置概括 4.RFPD 运行及错误分析 5.CA吞吐率问题分析

嘿v小米的博客 9679

联想开天N70z/N79Z G1d笔记本Win驱动下载

本文介绍了联想开天N70Z/N79Z G1d笔记本在Win11系统下的驱动安装方法。提供了WiFi网卡驱动(RealtekWlan)和显卡驱动(ZX C960 GPU)的详细安装步骤,包括手动更新驱动和卸载流程。驱动安装后成功支持5G WiFi连接并正确识别显卡型号。文中附有系统信息和安装效果截图,同时提供了官方驱动下载地址及备用下载链接。该指南适用于需要为联想开天N70Z/N79Z G1d笔记本安装Win11驱动的用户参考。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3874

python list与numpy数组效率比较

文章目录前言索引效率比较 前言 因为经常一训练就是很多次迭代,所以找到效率比较高的操作能大大缩短运行时间,但这方面资料不足,所以自己记录总结一下,有需要再补充 索引效率比较 有时候我需要一个数组,然后可能会频繁从中索引数据,那么我选择list还是numpy array呢,这里做了一个简单的实验进行比较,环境python 3.6 import random import numpy as np import time import sys a = [1] * 20 b = np.array(a) prin

想写就写咯 9935

RTA_OS基础功能讲解 2.6-资源锁和自旋锁

访问需要在任务和 ISR 之间共享的硬件或数据可能不可靠、不安全。这是因为当优先级较低的任务或 ISR 正在更新共享数据时,可能会发生任务或 ISR 抢占。这种情况被称为竞争条件,极难测试。访问共享数据的语句序列称为关键部分。要安全访问关键部分中引用的代码和数据,就需要执行互斥。换句话说,必须确保系统中没有其他任务或第 2 类 ISR 能够在关键部分期间抢占正在执行的任务。你可以将任务声明为非抢占式任务,这样就可以避免互斥问题。

本博客专注于嵌入式软件领域技术分享。 290

python:列表list vs 数组numpy.array

0.绪: (1)序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 (2)Python有6个序列的内置类型,但最常见的是列表list和元组。 (3)序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 1.列表list: pytho...

SSS_369 1128

CAPL自动化测试

通过本文的学习,读者应该对CAPL自动化测试有了初步的了解,并能够编写复杂的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1527

2026最新贝壳二手房爬虫实战:突破极验5.0滑块验证码,完整房源数据采集方案

本文详细介绍了2026年贝壳找房爬虫技术方案,重点突破其极验5.0滑块验证码等反爬机制。文章首先解析了贝壳六大核心反爬模块,包括AI驱动的验证码、设备指纹绑定和TLS指纹识别等。针对最难破解的滑块验证码,提出了基于YOLOv11深度学习模型的缺口检测方案,准确率达99.5%,并结合人类行为轨迹模拟实现98%以上的成功率。最后设计了分布式爬虫架构,包含任务调度、代理池、验证码服务和数据清洗等模块,为大规模采集贝壳真实房源数据提供了完整解决方案。该方案在复杂反爬环境下仍保持高效稳定,具有重要的商业和研究价值。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2054

np.array vs 原生Python列表:性能对比实测

对容器内所有元素执行平方运算时,np.array的向量化操作仅需列表循环操作的1/50时间。最近在优化数据处理代码时,我很好奇NumPy的np.array和Python原生列表在性能上到底有多大差异。为了搞清楚这个问题,我设计了一个简单的性能对比测试,从五个常见操作场景来量化它们的效率差距。但进行步长切片(如每10个取1个)时,np.array会快2倍左右,因为它直接操作内存块而非生成新对象。实际测试时发现,平台的一键执行功能特别适合这种需要反复运行的性能测试,不用手动配置环境就能得到可靠结果。

CrystalwaveEagle34的博客 515

Unity 编辑器篇|(一)MenuItem菜单栏

"一级菜单/二级菜单上/三级菜单""一级菜单/二级菜单中 %#_B""一级菜单/二级菜单下 %&_C""一级菜单/二级菜单中 %#_B""一级菜单/二级菜单下 %&_C""GameObject/二级菜单""CONTEXT/组件名/菜单名""一级菜单/二级菜单上 #_A""Assets/二级菜单""一级菜单/二级菜单下""一级菜单/二级菜单上""一级菜单/二级菜单中""一级菜单/二级菜单下""一级菜单/二级菜单下""一级菜单/二级菜单上""一级菜单/二级菜单中""一级菜单/二级菜单下""自定义/Test"

游戏开发小Y的博客 13万+

Python数组三重门:list、array、ndarray底层原理与选型指南

在Python中,'数组'并非单一数据结构,而是涵盖原生list、标准库array模块和NumPy ndarray三种本质不同的实现。它们分别基于动态指针数组、紧凑C风格内存布局和面向向量化计算的strides机制,对应不同的内存模型、类型系统与性能特征。理解其底层差异——如list的灵活性与高内存开销、array.array的类型强制与连续存储、ndarray的dtype+shape+strides三维设计——是避免运行时错误、内存爆炸和性能陷阱的关键。尤其在工业控制、金融量化与生物信息等数据密集场景中,

weixin_30444105的博客 388

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python数组真相:list、array模块与NumPy ndarray三层选型指南

在Python中,'数组'并非单一概念,而是由list、标准库array模块和NumPy ndarray构成的三层技术栈。其本质差异源于内存模型:list是动态指针容器,适合通用逻辑;array.array提供紧凑同类型存储,适用于低开销IO;而NumPy ndarray以连续内存、dtype对齐、strides机制和ufunc向量化为核心,成为numerical computing的事实标准。理解这三者的原理差异,能避免用list做矩阵运算的性能黑洞,规避array.array转ndarray的隐式拷贝陷

weixin_33797791的博客 407

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

numpy 下的数据结构与数据类型的转换(np.array vs. np.asarray)

1. np.asarray —— numpy 风格的类型转换从已有多维数组创建新的多维数组,数据类型可重新设置>> B = np.asarray(A, dtype='int32')

9996

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python list,numpy模块array与mat的区别

list 、numpy.array、mat的区别 元素类型 首先是元素存储的区别,list里面可以存储不同的元素类型,但是array和mat必须是同一类型的元素,arrayA与mat自动将不同类型的元素进行转换成同一类型的元素。 然后是展现的形式,array是数组类型,而mat是矩阵的形式 import numpy as np listA = [1,2,'3'] matA = np.mat(listA) arrayA = np.array(listA) print(matA,end = '

landing_guy_的博客 760

Python算法:5亿社交好友申请标记,list爆内存numpy定长灾难,bool-hybrid-array混合存储方案

向量化筛选快,但发送/撤回申请是高频操作,numpy定长数组insert/append全量拷贝,5亿元素拷贝一次500MB,高峰期直接卡死。### 2.2 构想:自动变速箱好友申请有个特点:活跃用户申请了很多人(密集),不活跃用户几乎没发过申请(稀疏),新用户刚注册没人可申请(极稀疏)。前者是集合,后者是数组。就是这一堆True和False,差点把我给整「申请」成「深请」了——不是申请的「申」,是深坑的「深」,5亿布尔标记把好友服务拖进深渊,OOM之后好友列表全空,用户以为自己被删好友了,客服电话被打爆。

BKsell的博客 196

NumPy 二维数组 5 种创建方法对比:从列表到随机矩阵的性能与内存分析

本文深入对比了NumPy中5种创建二维数组的方法,包括从列表构建、零值初始化、全1矩阵、常量填充和随机矩阵生成。通过详细的性能与内存分析,帮助开发者在数据科学和机器学习项目中做出最优选择,提升NumPy二维数组的操作效率。

过客阵营 -- 简单的就要最简单 588

Python: tuple 才能放进 set;np.array 是不可哈希的

Python: tuple(元组)才能放进 set(集合);np.array 是不可哈希的。列表可变 → 不可哈希;元组不可变 → 可哈希(只要内部元素也可哈希)。,而 Python 里的列表、NumPy 数组都是。Python 内置函数。

2401_83026894的博客 277

NumPy 1.24 二维数组创建:7种方法性能对比与内存占用实测

本文详细对比了NumPy 1.24中7种二维数组创建方法的性能与内存占用,包括`np.zeros`、`np.ones`、`np.full`等。测试显示`np.zeros`最快,而`np.array`从列表创建性能最差。内存方面,所有方法最终占用相同,但`np.array`存在显著临时峰值。文章还提供了优化建议和场景化选型指南,帮助开发者提升数据处理效率。

weixin_33675507的博客 314
上一篇: python 中的 type(), dtype(), astype()的区别
下一篇: python基础:os.path的相关操作
wzg2016
博客等级 码龄10年 539粉丝 493原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值