(100天2小时第十六天)numpy数组——索引,切片和迭代

本文介绍了NumPy数组的索引、切片和迭代操作。一维数组的索引与普通Python列表类似,多维数组则能在各轴上进行索引。`np.fromfunction`用于创建矩阵,其中x和y分别代表坐标。全切片表示未指定的所有索引,并可通过属性遍历数组的每个元素。总结关键点包括切片语法、`np.fromfunction`用法、全切片以及遍历元素的方法。
摘要由CSDN通过智能技术生成

一、通用函数

B = np.arange(3)
print(B)
print(np.exp(B))
print(2.71828183 * 2.71828183)
print(np.sqrt(B))
C = np.array([2., -1., 4.])
print(np.add(B, C))

二、索引,切片和迭代

一维数组的索引,切片,迭代跟普通的python列表一样

a = np.arange(10) ** 3
print(a)
print(a[2])
print(a[2:5])
print(a[:6:2]) # 等价于a[0:6:2]
a[:6:2] = -1000
print(a)
print(a[::-1])# 反转数组a

 

三、多维数组可以在每个轴上索引,多个索引用,分隔

def f(x,y):
     return 10*x +y
b=np.fromfunction(f, (5,4), dtype=int)
print(b)

 

注意:np.fromfunction(f, (5,4), dtype=int),fromfunction(f, (5,4))不是把5和4传给x,y,代表一个数组,生成5行4列的一个矩阵。x默认为0,1,2,3,4……,y是算出10*x之后往后加1,直到满足5行4列的矩阵。

#help(np.fromfunction)
print( b[2,3])#2行3列
print(b[0:5, 1])#输出下标0-5第一列
print(b[:, 1])#输出列下标为1所有的数
print( b[1:3, :])#输出行下标1,2的数,不包括3

 

当索引数少于轴数时,缺失的索引认为是全切片:

print(b[-1]) # 等价于 b[-1,:]

  

同样可以使用...来表示全切片,它代表补全剩下的所有索引。

c = np.array([[[0,1,2],[10,12,13]],
               [[100,101,102],[110,112,113]]])
print(c.shape)
print(c[1,...])#行下标为1所有的数
print(c[...,2])#列下标为2所有的数
#print(c[..,1,...])#错误

 

如果想遍历每个元素,可以使用flat属性:

for element in b.flat:
   print(element)

 

 

 

总结:

1.切片:print(a[:6:2]) # 等价于a[0:6:2]

   print(a[::-1])# 反转数组a

2.np.fromfunction(f, (5,4), dtype=int),fromfunction(f, (5,4))不是把5和4传给x,y,代表一个数组,生成5行4列的一个矩阵。x默认为0,1,2,3,4……,y是算出10*x之后往后加1,直到满足5行4列的矩阵。

3.全切片:print(b[-1,:]) # 等价于 b[-1,:]  或者使用……

4.想遍历每个元素,可以使用flat属性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值