numpy基础

01
02
03
04
05
06
# Ndarray 对象
import numpy as np
a = np.array([1,2,3])                           #一维
a = np.array([[12],  [34]])               #多维
a = np.array([1, 2, 3, 4, 5], ndmin =  2)       #最小维度
a = np.array([123], 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.02.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 个数组的形状不同时,广播机制
posted @   wuyuan2011woaini  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示