NumPy数组的其他用法

数组的迭代:

通常我们想要遍历列表的每一项元素时,经常会与for循环来配合使用,数组也是一样的,想要得到每一个维中的具体元素也可以同过for循环来得到,例如:

# 我们想要遍历一个2-D数组的元素
import numpy as np

arr = np.array([[1, 2], [3, 4]])

for x in arr:
    for y in x:
        print(x)

这样才能得到每一个元素,也就是有几个维,就是for循环几次

这样低纬数组还好,维度越高,需要for循环的次数就越多,代码量就会增加,numpy库专门提供了一个函数来遍历数组,就是nditer()函数,我们可以把代码改成这样:

import numpy as np


arr = np.array([[1, 2, 3], [4, 5, 6]])

x = np.nditer(arr)
print(x)

这样就会返回一个迭代器对象:

<numpy.nditer object at 0x00000235F1736010>

这样再通过一个for循环就可以得到数组中的每一个元素

我们想要再迭代数组对象的同时更改每一个元素类型也是可以的,通过op_dtypes参数来传递需要变成的数据类型就可以了,numpy不会直接更改数组中的元素类型,他需要一个额外空间来完成操作,这个额外空间就是buffer,我们想要在nditer函数中启用buffer需要传参flags=['buffered'],代码如下:


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guizhouspiderman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值