Coordinates of numpy array from index and shape的代码

如下代码内容是关于Coordinates of numpy array from index and shape的代码。

“”"
Created on Fri Oct 05 13:32:06 2012

@author: Garrett Berg
“”"
import numpy as np
import itertools
import math

def index_to_coords(index, shape):
‘’‘convert index to coordinates given the shape’’’
coords = []
for i in xrange(1, len(shape)):
divisor = int(np.product(shape[i:]))
coords.append(value)
coords.append(index)
return tuple(coords)

def first_coords_et(data_matrix, value, start = 0):
‘’‘the first coordinates that are equal to the value’’’
index = first_index_et(data_matrix.flatten(), value, start)
shape = data_matrix.shape
return index_to_coords(index, shape)

def first_index_et(data_list, value, start = 0):
data_list = itertools.islice(data_list, start, None)
‘’‘same as data_list.index(value), except with exception handling
Also finds ‘nan’ values and works with numpy arrays – quickly!’’’
try:
if type(value) == float and math.isnan(value):
floats = (float, np.float64, np.float32, np.float96)
isnan = math.isnan
return next(data[0] for data in enumerate(data_list)
if (type(data[1]) in floats
and isnan(data[1]))) + start
else:
return next(data[0] for data in
enumerate(data_list) if data[1] == value) + start
except (ValueError, StopIteration): return - 1

if name == ‘main’:
ab = np.arange(0, 30000)
value = ab[7][12][0]
print first_coords_et(ab, value)
# (7, 12, 0)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值