Python 如何在函数输出中获取唯一值列表
假设我有这样一个函数:Python 如何在函数输出中获取唯一值列表,python,numpy,Python,Numpy,假设我有这样一个函数: def function(a,b): for x in np.nditer(a): dAB = x-b pred = np.ceil([dAB+b*2]) print(pred) 及 我的输出是: function(array1,array2) [[5. 6. 7. 8. 9.]] [[ 6. 7. 8. 9. 10.]] [[ 7. 8. 9. 10. 11.]] [[ 8. 9. 10. 11.
def function(a,b):
for x in np.nditer(a):
dAB = x-b
pred = np.ceil([dAB+b*2])
print(pred)
及
我的输出是:
function(array1,array2)
[[5. 6. 7. 8. 9.]]
[[ 6. 7. 8. 9. 10.]]
[[ 7. 8. 9. 10. 11.]]
[[ 8. 9. 10. 11. 12.]]
[[ 9. 10. 11. 12. 13.]]
如何获得如下输出:
function(array1,array2)
array([5,6,7,8,9,10,11,12,13])
我想要的是跨数组获取所有唯一值并将其放入一个数组中。只需使用:
将numpy作为np导入
def功能A,b:
res=设置
对于np.nditera中的x:
dAB=x-b
pred=np.ceildAB+b*2
res.updatepred
返回np.arrayres
前
您可以使用np.unique:
输出:
array([ 5., 6., 7., 8., 9., 10., 11., 12., 13.])
您可以直接将array1和array2与以下各项进行比较:
In [249]: np.ceil((array1[:,None]-array2)+array2*2)
Out[249]:
array([[ 5., 6., 7., 8., 9.],
[ 6., 7., 8., 9., 10.],
[ 7., 8., 9., 10., 11.],
[ 8., 9., 10., 11., 12.],
[ 9., 10., 11., 12., 13.]])
并从中获得唯一值:
In [250]: np.unique(np.ceil((array1[:,None]-array2)+array2*2))
Out[250]: array([ 5., 6., 7., 8., 9., 10., 11., 12., 13.])
太神了谢谢:你能澄清问题的具体内容吗?这是否回答了你的问题?
array([ 5., 6., 7., 8., 9., 10., 11., 12., 13.])
In [249]: np.ceil((array1[:,None]-array2)+array2*2)
Out[249]:
array([[ 5., 6., 7., 8., 9.],
[ 6., 7., 8., 9., 10.],
[ 7., 8., 9., 10., 11.],
[ 8., 9., 10., 11., 12.],
[ 9., 10., 11., 12., 13.]])
In [250]: np.unique(np.ceil((array1[:,None]-array2)+array2*2))
Out[250]: array([ 5., 6., 7., 8., 9., 10., 11., 12., 13.])