回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个字符串条目的数组。我还有第二个数组,它唯一地包含ndarray的每个字符串条目。所以我想用第二个数组的位置来替换ndarray的字符串,在这里定义字符串。我试过这个:</p>
<pre><code>import scipy as sp
extern_nodes = sp.array([['B11', 'B6', '-1', '-1', '-1', '-1'],
['B9', 'B3', '-1', '-1', '-1', '-1'],
['B10', 'B5', '-1', '-1', '-1', '-1'],
['B8', 'B2', '-1', '-1', '-1', '-1'],
['B16', 'B6', '-1', '-1', '-1', '-1'],
['B15', 'B5', '-1', '-1', '-1', '-1'],
['B14', 'B3', '-1', '-1', '-1', '-1'],
['B12', 'B1', '-1', '-1', '-1', '-1'],
['B13', 'B2', '-1', '-1', '-1', '-1']], dtype='<U6')
nodes_sorted = sp.array(['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B8', 'B9', 'B10', 'B11',
'B12', 'B13', 'B14', 'B15', 'B16'], dtype='<U3')
for i in range(0, len(nodes_sorted)):
extern_nodes = sp.char.replace(extern_nodes, nodes_sorted[i], str(i))
</code></pre>
<p>我得到的结果是</p>
<pre><code>Out:extern_nodes: array([['01', '5', '-1', '-1', '-1', '-1'],
['7', '2', '-1', '-1', '-1', '-1'],
['00', '4', '-1', '-1', '-1', '-1'],
['6', '1', '-1', '-1', '-1', '-1'],
['06', '5', '-1', '-1', '-1', '-1'],
['05', '4', '-1', '-1', '-1', '-1'],
['04', '2', '-1', '-1', '-1', '-1'],
['02', '0', '-1', '-1', '-1', '-1'],
['03', '1', '-1', '-1', '-1', '-1']], dtype='<U2')
</code></pre>
<p>这意味着条目“B1X”在第一步中被“0X”替换,因为将“B1”替换为“0”。你知道吗</p>
<p>我找不到一种方法来指定字符串的精确匹配替换。我的目标是进入这个数组的for循环的第一步(只将每个“B1”替换为“0”,而不替换其他“XB1X”字符串…)</p>
<pre><code>extern_nodes = sp.array([['B11', 'B6', '-1', '-1', '-1', '-1'],
['B9', 'B3', '-1', '-1', '-1', '-1'],
['B10', 'B5', '-1', '-1', '-1', '-1'],
['B8', 'B2', '-1', '-1', '-1', '-1'],
['B16', 'B6', '-1', '-1', '-1', '-1'],
['B15', 'B5', '-1', '-1', '-1', '-1'],
['B14', 'B3', '-1', '-1', '-1', '-1'],
['B12', '0', '-1', '-1', '-1', '-1'],
['B13', 'B2', '-1', '-1', '-1', '-1']], dtype='<U6')
</code></pre>