np.nditer()

我直接写在了代码里:

#单数组的迭代
# import numpy as np
# a = np.arange(6).reshape(2,3)
# print a
# for x in np.nditer(a):
#     print x
# print a.T

#you will find a & a.T has the same result
# for x in np.nditer(a.T):
#     print x
# print a.T.copy()
# for x in np.nditer(a.T.copy(order='C')):
#     print x
#

#默认是只读对象的,你需要修改的时候指定read-write
# for x in np.nditer(a,op_flags=['readwrite']):
#     x[...]=2*x
#
# print a
#
#将一维的最内层的循环转移到外部的循环迭代器,使得numpy的矢量化操作在处理更大规模数据时变得更有效率
# import numpy as np
# a=np.arange(6).reshape(3,2)
# for x in np.nditer(a,flags=['external_loop']):
#     print x
# for x in np.nditer(a,flags=['external_loop'],order='F'):
#     print x

#跟踪单个索引和多种索引
import numpy as np
a=np.arange(6).reshape(2,3)
print a
it=np.nditer(a,flags=['c_index'])
while not it.finished:
    print "%d <%d>" % (it[0],it.index)
    it.iternext()

print "*****************"

itit=np.nditer(a,flags=['f_index'])
while not itit.finished:
    print "%d <%d>" % (itit[0],itit.index)
    itit.iternext()

print "*****************"
ititit=np.nditer(a,flags=['multi_index'])
while not ititit.finished:
    print "%d <%s>" % (ititit[0],ititit.multi_index)
    ititit.iternext()


可以运行结果看看!

第一个import numpy as np的结果:

[[0 1 2]
 [3 4 5]]
0
1
2
3
4
5
[[0 3]
 [1 4]
 [2 5]]
0
1
2
3
4
5
[[0 3]
 [1 4]
 [2 5]]
0
3
1
4
2
5
[[ 0  2  4]
 [ 6  8 10]]

第二个import numpy as np 的结果:

[0 1 2 3 4 5]
[0 2 4]
[1 3 5]

第三个import numpy as np的结果:

[[0 1 2]
 [3 4 5]]
0 <0>
1 <1>
2 <2>
3 <3>
4 <4>
5 <5>
*****************
0 <0>
1 <2>
2 <4>
3 <1>
4 <3>
5 <5>
*****************
0 <(0, 0)>
1 <(0, 1)>
2 <(0, 2)>
3 <(1, 0)>
4 <(1, 1)>
5 <(1, 2)>




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值