擅长:python、mysql、java
<p>要将字符串列表映射到唯一整数,必须首先找到唯一字符串,然后将字符串1-1映射到原始字符串列表中的整数</p>
<pre class="lang-py prettyprint-override"><code>list_1 = ['sentosa', 'versicolor', 'virginica', 'virginica', 'sentosa']
# create unique list of names
unique_list = set(list_1) # Unique list {'sentosa', 'versicolor', 'virginica'}
# create mappings from names to integer (id)
string_to_integer = {name: idx+1 for idx, name in enumerate(unique_list)}
# map initial list of names to ids
k = [string_to_integer [name] for name in list_1 ]
</code></pre>
<p>输出:</p>
<pre><code>3, 2, 1, 1, 3
</code></pre>
<p><strong>另一种可能的方式-</strong></p>
<pre><code>list_1 = ['sentosa', 'versicolor', 'virginica', 'virginica', 'sentosa']
mydict={}
i = 0
for item in list_1:
if(i>0 and item in mydict):
continue
else:
i = i+1
mydict[item] = i
k=[]
for item in list_1:
k.append(mydict[item])
</code></pre>
<pre><code>1, 2, 3, 3, 1
</code></pre>
<p><strong>然后切换到<code>numpy array</code></strong></p>
<pre><code>arr = numpy.asarray(k)
</code></pre>
<p>我希望这能帮助你完成任务</p>