我是新来的python
,我正在研究类似于以下的代码,
import numpy as np
a = np.ones([1,1,5,5], dtype='int64')
b = np.ones([11], dtype='float64')
x = b[a]
print (x.shape)
# (1, 1, 5, 5)
我查看了 pythonnumpy
文档,我没有找到与这种情况相关的任何内容。我不确定这里发生了什么,也不知道去哪里找。
编辑实际代码
def gausslabel(length=180, stride=2):
gaussian_pdf = signal.gaussian(length+1, 3)
label = np.reshape(np.arange(stride/2, length, stride), [1,1,-1,1])
y = np.reshape(np.arange(stride/2, length, stride), [1,1,1,-1])
delta = np.array(np.abs(label - y), dtype=int)
delta = np.minimum(delta, length-delta)+length/2
return gaussian_pdf[delta]
我猜这段代码试图证明如果你用数组索引一个数组,结果是一个与索引数组具有相同形状的数组(在这种情况下a
)而不是索引数组(即b
)
但这很令人困惑,因为b
充满了1
s。而是尝试使用b
完整的不同数字:
>> a = np.ones([1,1,5,5], dtype='int64')
>> b = np.arange(11) + 3
array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
>>> b[a]
array([[[[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4],
[4, 4, 4, 4, 4]]]])
因为a
是1
s的数组,所以唯一b
索引的元素是b[1]
which equals 4
。结果的形状虽然是 的形状a
,用作索引的数组。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句