为了账号安全,请及时绑定邮箱和手机立即绑定

Numpy:将单个元素广播到 len n 数组

Numpy:将单个元素广播到 len n 数组

肥皂起泡泡 2022-07-12 09:45:55
假设我有一个数据框。此数据框具有字符串内容。我需要执行以下操作:for i in range(0,100000):    label = raw.values[i,3]    stackable = np.asarray([label for i in range(40)]).reshape((-1,1))    data.append(np.hstack(some_other_data,stackable))这是我正在尝试做的一个小例子,它在 python 中需要很长时间。使用 numpy 执行此操作的“正确”方法是什么?
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

full应该是在数组中“复制”字符串的快速(错误)方式:


In [84]: np.full(4, 'label')                                                                     

Out[84]: array(['label', 'label', 'label', 'label'], dtype='<U5')

In [85]: alist = []                                                                              

In [86]: labels = ['one','two','three']                                                          

In [87]: for i in range(3): 

    ...:     temp=np.full(3,labels[i]) 

    ...:     alist.append(temp) 

    ...:                                                                                         

In [88]: alist                                                                                   

Out[88]: 

[array(['one', 'one', 'one'], dtype='<U3'),

 array(['two', 'two', 'two'], dtype='<U3'),

 array(['three', 'three', 'three'], dtype='<U5')]

In [89]: np.array(alist)                                                                         

Out[89]: 

array([['one', 'one', 'one'],

       ['two', 'two', 'two'],

       ['three', 'three', 'three']], dtype='<U5')

或列表理解:


In [91]: np.array([np.full(3,l,'U7') for l in labels])                                           

Out[91]: 

array([['one', 'one', 'one'],

       ['two', 'two', 'two'],

       ['three', 'three', 'three']], dtype='<U7')


查看完整回答
反对 回复 2022-07-12
?
守候你守候我

TA贡献1802条经验 获得超10个赞

更换

stackable = np.asarray([label for i in range(40)]).reshape((-1,1))

stackable = np.asarray([label]*40).reshape((-1,1))

在我的机器上获得 10-20% 的性能提升。可能还有更多可以做的事情,但是如果不了解更多关于data和就很难说some_other_data


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信