【问题标题】:Faster string assignment using Numpy使用 Numpy 更快地分配字符串
【发布时间】:2014-07-27 09:25:21
【问题描述】:

Numpy 可以用来做更快的字符串赋值吗?

我想要我的字符串数组

[['x1-y1', 'x1-y2'...],
['x2-y2, 'x2-y2' ...],
.....
]

等等

所以,每个 (i,j) 处的字符串 = "x%d-y%d" % (i,j)

这可以在 Numpy 中完成吗?

【问题讨论】:

    标签: python string numpy


    【解决方案1】:

    如果你的数组的大小是 (m,m)

    rx = np.outer(np.ones((m,)), np.linspace(1, m, m))
    ry = np.outer(np.linspace(1, m, m), np.ones((m,)))
    s1 = np.chararray((m, m),itemsize=1)
    s1[:]=''
    strarray = s1+'x'+np.array(rx, dtype='str')+'-'+'y'+np.array(ry, dtype='str')
    

    输出将是

    chararray([['x1.0-y1.0', 'x2.0-y1.0', 'x3.0-y1.0', 'x4.0-y1.0', 'x5.0-y1.0'],
           ['x1.0-y2.0', 'x2.0-y2.0', 'x3.0-y2.0', 'x4.0-y2.0', 'x5.0-y2.0'],
           ['x1.0-y3.0', 'x2.0-y3.0', 'x3.0-y3.0', 'x4.0-y3.0', 'x5.0-y3.0'],
           ['x1.0-y4.0', 'x2.0-y4.0', 'x3.0-y4.0', 'x4.0-y4.0', 'x5.0-y4.0'],
           ['x1.0-y5.0', 'x2.0-y5.0', 'x3.0-y5.0', 'x4.0-y5.0', 'x5.0-y5.0']], 
          dtype='|S68')
    

    【讨论】:

      猜你喜欢
      • 2011-03-19
      • 2011-06-09
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2011-01-27
      • 2020-07-27
      • 2017-06-09
      • 1970-01-01
      相关资源
      最近更新 更多