英文:
How do I fill an array with 0 (or Nan) using other array as a reference?
问题
我有一个像这样的数组:
array(['ENST00000003084', 'ENST00000426809', 'ENST00000454343'],
['ENST00000003084', 'ENST00000426809', 'ENST00000446805', 'ENST00000454343'],
['ENST00000003084', 'ENST00000454343'],
['ENST00000003084', 'ENST00000426809', 'ENST00000454343', 'ENST00000600166'])
但我想让它们都遵循相同的参考,因为它们必须保持这个顺序:
array(['ENST00000003084', 'ENST00000426809', 'ENST00000446805',
'ENST00000454343', 'ENST00000468795', 'ENST00000600166'])
我不只是想在末尾填充零,我想根据参考数组填充缺失的值,使它们最终都有6个元素。
例如,对于数组
['ENST00000003084', 'ENST00000426809', 'ENST00000454343']
最终输出应该是:
['ENST00000003084', 'ENST00000426809', 0, 'ENST00000454343', 0, 0]
英文:
I have an array like this:
array(['ENST00000003084', 'ENST00000426809', 'ENST00000454343'],
['ENST00000003084', 'ENST00000426809', 'ENST00000446805', 'ENST00000454343'],
['ENST00000003084', 'ENST00000454343'],
['ENST00000003084', 'ENST00000426809', 'ENST00000454343', 'ENST00000600166'])
but I want to all follow the same reference, because they have to maintain this order:
array(['ENST00000003084', 'ENST00000426809', 'ENST00000446805',
'ENST00000454343', 'ENST00000468795', 'ENST00000600166'])
I don't want just to complete with zeros in the end, I want to fill with 0 the missing values according to the reference array, so they all end up with 6 elements
For example, for the array
['ENST00000003084', 'ENST00000426809', 'ENST00000454343']
the final output should be:
['ENST00000003084', 'ENST00000426809',0, 'ENST00000454343', 0, 0]
答案1
得分: 0
这应该解决了你的问题。
ref = np.array(['ENST00000003084', 'ENST00000426809', 'ENST00000446805',
'ENST00000454343', 'ENST00000468795', 'ENST00000600166'])
a = np.array(['ENST00000003084', 'ENST00000426809', 'ENST00000454343'])
b = [ref[k] if ref[k] in a else 0 for k in range(len(ref))]
这个示例的输出是
['ENST00000003084', 'ENST00000426809', 0, 'ENST00000454343', 0, 0]
英文:
this should solve your problem.
ref = np.array(['ENST00000003084', 'ENST00000426809', 'ENST00000446805',
'ENST00000454343', 'ENST00000468795', 'ENST00000600166'])
a = np.array(['ENST00000003084', 'ENST00000426809', 'ENST00000454343'])
b = [ref[k] if ref[k] in a else 0 for k in range(len(ref))]
The output of this example is
['ENST00000003084', 'ENST00000426809', 0, 'ENST00000454343', 0, 0]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论