例如,我有一个包含字符串元素的数组,我只需要前3个字符:
>>> import numpy
>>> a = numpy.array(['apples', 'foobar', 'cowboy'])
如何获取'app','foo','cow‘
我尝试了以下方法,但不起作用
>>> b = a[:],[0,2]
发布于 2018-07-03 08:31:51
试试这个:
b = [a[i][:3] for i in range(len(a))]
print(b)
输出:
['app','foo','cow']
发布于 2018-07-03 08:35:32
import numpy
a = numpy.array(['apples', 'foobar', 'cowboy'])
v = list(a)
b = [val[:3] for val in v]
print(b)
>>> ['app', 'foo', 'cow']
发布于 2018-07-03 08:41:11
尝试像这样使用map
:
import numpy
a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(lambda string: string[:3], a)
print(b) # ['app', 'foo', 'cow']
使用此方法的一个好处是,如果您想对numpy
数组中的每个元素执行更复杂的操作,您可以只定义一个更复杂的单参数函数,该函数从该数组中接收一个元素,然后输出所需的数据,如下所示:
import numpy
def some_complex_func(element):
"""
Do some complicated things to element here.
"""
# In this case, only return the first three characters of each string
return element[:3]
a = numpy.array(['apples', 'foobar', 'cowboy'])
b = map(some_complex_func, a)
print(b) # ['app', 'foo', 'cow']
https://stackoverflow.com/questions/51145199
复制相似问题