python创建字符串数组_如何创建任意长度字符串的numpy数组?
您可以通過創(chuàng)建一個(gè)dtype=object數(shù)組來執(zhí)行此操作。如果嘗試將長字符串分配給普通numpy數(shù)組,它將截?cái)嘣撟址?#xff1a;>>> a = numpy.array(['apples', 'foobar', 'cowboy'])
>>> a[2] = 'bananas'
>>> a
array(['apples', 'foobar', 'banana'],
dtype='|S6')
但是當(dāng)您使用dtype=object時(shí),會得到一個(gè)python對象引用數(shù)組。因此您可以擁有python字符串的所有行為:>>> a = numpy.array(['apples', 'foobar', 'cowboy'], dtype=object)
>>> a
array([apples, foobar, cowboy], dtype=object)
>>> a[2] = 'bananas'
>>> a
array([apples, foobar, bananas], dtype=object)
實(shí)際上,因?yàn)樗且粋€(gè)對象數(shù)組,所以可以將任何類型的python對象分配給該數(shù)組:>>> a[2] = {1:2, 3:4}
>>> a
array([apples, foobar, {1: 2, 3: 4}], dtype=object)
但是,這會抵消使用numpy的許多好處,numpy速度非???#xff0c;因?yàn)樗梢栽诖罅窟B續(xù)的原始內(nèi)存塊上工作。使用python對象會增加很多開銷。一個(gè)簡單的例子:>>> a = numpy.array(['abba' for _ in range(10000)])
>>> b = numpy.array(['abba' for _ in range(10000)], dtype=object)
>>> %timeit a.copy()
100000 loops, best of 3: 2.51 us per loop
>>> %timeit b.copy()
10000 loops, best of 3: 48.4 us per loop
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的python创建字符串数组_如何创建任意长度字符串的numpy数组?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django restframework
- 下一篇: django language_Pyth