numpy基础
01 02 03 04 05 06 | # Ndarray 对象 import numpy as np a = np.array([ 1 , 2 , 3 ]) #一维 a = np.array([[ 1 , 2 ], [ 3 , 4 ]]) #多维 a = np.array([ 1 , 2 , 3 , 4 , 5 ], ndmin = 2 ) #最小维度 a = np.array([ 1 , 2 , 3 ], dtype = complex ) #dtype |
01 02 03 04 05 06 07 08 09 | # NumPy 数据类型 dt = np.dtype(np.int32) # 使用标量类型 dt = np.dtype( 'i4' ) # int8, int16, int32, int64 四种数据类型可以使用字符串 'i1', 'i2','i4','i8' 代替 dt = np.dtype( '<i4' ) # 字节顺序标注 dt = np.dtype([( 'age' ,np.int8)]) # 首先创建结构化数据类型 a = np.array([( 10 ,),( 20 ,),( 30 ,)], dtype = dt) # 将数据类型应用于 ndarray 对象 a[ 'age' ] # 类型字段名可以用于存取实际的 age 列 student = np.dtype([( 'name' , 'S20' ), ( 'age' , 'i1' ), ( 'marks' , 'f4' )]) a = np.array([( 'abc' , 21 , 50 ),( 'xyz' , 18 , 75 )], dtype = student) |
01 02 03 04 05 06 07 08 09 10 | # NumPy 数组属性 a = np.arange( 24 ) a.ndim #ndim维数 a.shape #shape维度 a = np.array([[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]]) a.shape = ( 3 , 2 ) #调整维度 b = a.reshape( 3 , 2 ) #reshape调整维度 x = np.array([ 1 , 2 , 3 , 4 , 5 ], dtype = np.int8) print (x.itemsize) #ndarray.itemsize 以字节的形式返回数组中每一个元素的大小 print (x.flags) #ndarray.flags 返回 ndarray 对象的内存信息 |
01 02 03 04 | # NumPy 创建数组 x = np.empty([ 3 , 2 ], dtype = int ) #numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组 y = np.zeros(( 5 ,), dtype = np. int ) #创建指定大小的数组,数组元素以 0 来填充 z = np.ones([ 2 , 2 ], dtype = int ) #创建指定形状的数组,数组元素以 1 来填充 |
01 02 03 04 05 06 07 08 09 10 11 | #NumPy 从已有的数组创建数组 x = [ 1 , 2 , 3 ] a = np.asarray(x) y = ( 1 , 2 , 3 ) b = np.asarray(y) #将列表、元组转换为 ndarray: s = b 'Hello World' a = np.frombuffer(s, dtype = 'S1' ) #numpy.frombuffer 用于实现动态数组 list = range ( 5 ) it = iter ( list ) x = np.fromiter(it, dtype = float ) #使用迭代器创建 ndarray |
01 02 03 04 | # NumPy 从数值范围创建数组 x = np.arange( 5 ) #arange 函数创建数值范围并返回 ndarray 对象 a = np.linspace( 1 , 10 ,num = 10 ) #numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的 b = np.logspace( 1.0 , 2.0 , num = 10 ) #numpy.logspace 函数用于创建一个于等比数列 |
01 02 03 04 05 | # NumPy 切片和索引 a = np.arange( 10 ) s = slice ( 2 , 7 , 2 ) # slice从索引 2 开始到索引 7 停止,间隔为2 b = a[ 2 : 7 : 2 ] # 从索引 2 开始到索引 7 停止,间隔为 2 b = a[ 2 :] # 从索引 2 开始到索引 7 停止,间隔为 2 |
01 02 03 04 05 06 07 08 09 10 11 | # NumPy 广播(Broadcast) a = np.array([ 1 , 2 , 3 , 4 ]) b = np.array([ 10 , 20 , 30 , 40 ]) c = a * b a = np.array([[ 0 , 0 , 0 ], [ 10 , 10 , 10 ], [ 20 , 20 , 20 ], [ 30 , 30 , 30 ]]) b = np.array([ 1 , 2 , 3 ]) print (a + b) # 2 个数组的形状不同时,广播机制 |
天道酬勤 循序渐进 技压群雄
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构