如何将int数组转换为str数组 输入:
x = np.array([0,1,2,3....])
LEN(X)= 73293
输出:
y = np.array(["0","1","2","3"....])
我们虽然做了这样的事情:
y=[]
for i in range(len(x)):
y=y.append(str(x[i]))
但它不起作用。
答案 0 :(得分:2)
尝试类似:
PropertyDescription
同样纯粹的numpy更快:
import numpy as np
#with list comprehension
y = [str(x) for x in np.arange(73293)]
#if you prefer to use pure numpy
y = np.arange(73293).astype(np.str)
希望它有所帮助。
答案 1 :(得分:1)
您可以使用vectorize:
f = np.vectorize(lambda x:str(x))
f(x)
输出:
array(['0', '1', '2', '3'],
dtype='<U1')
100000 loops, best of 3: 18 µs per loop
编辑:
f(np.arange(73293))
10 loops, best of 3: 30.3 ms per loop
答案 2 :(得分:1)
您也可以将np.apply_along_axis()
与自定义函数一起使用,例如:
def my_func(a):
return list(map(str, a))
a = np.array([0,1,2,3])
a = np.apply_along_axis(lambda x: my_func(x), 0, a)
输出:
>>> a
array(['0', '1', '2', '3'],
dtype='<U1'
答案 3 :(得分:0)
这可以用纯Python解决:
>>> map(str, x)
['1', '2', '3']
或者如果您需要转换回来:
>>> x = np.array([1,2,3])
>>> np.array(map(str, x))
array(['1', '2', '3'],
dtype='|S7')
答案 4 :(得分:0)
如何将矩阵转换为数组/字符串列表? 输入:
M = array([[1,1,2,5],
[1,1,2,3],
[1,2,0,4],
[1,2,0,6],
[1,2,0,8],
[2,1,3,5],
[2,2,9,6],
[2,2,9,4]])
输出:
N = array(["1,1,2,5",
"1,1,2,3",
"1,2,0,4",
"1,2,0,6",
"1,2,0,8",
"2,1,3,5",
"2,2,9,6",
"2,2,9,4"])
我们尝试过这样的事情:
list1=[]
for i in range(len(M)):
list1=list1.append(str(M[i,0]),str(M[i,1]),str(M[i,2]),str(M[i,3]))