栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何将列添加到numpy数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何将列添加到numpy数组

我认为您的问题是您希望

np.append
就地添加该列,但是由于存储的numpy数据的原因,它的作用是创建连接数组的副本

Returns-------append : ndarray    A copy of `arr` with `values` appended to `axis`.  Note that `append`    does not occur in-place: a new array is allocated and filled.  If    `axis` is None, `out` is a flattened array.

所以你需要保存输出

all_data = np.append(...)

my_data = np.random.random((210,8)) #recfromcsv('LIAB.ST.csv', delimiter='t')new_col = my_data.sum(1)[...,None] # None keeps (n, 1) shapenew_col.shape#(210,1)all_data = np.append(my_data, new_col, 1)all_data.shape#(210,9)

替代方式:

all_data = np.hstack((my_data, new_col))#orall_data = np.concatenate((my_data, new_col), 1)

我相信这三个函数(以及

np.vstack
)之间的唯一区别
axis
是未指定when的默认行为:

  • concatenate
    假设
    axis = 0
  • hstack
    假设
    axis = 1
    除非输入为1d,否则
    axis = 0
  • vstack``axis = 0
    如果输入为1d,则假定在添加轴后
  • append
    展平数组

根据您的评论,并更加仔细地查看示例代码,我现在认为您可能想做的是在
记录数组中
添加一个 字段 。您都导入了返回
结构化数组
和返回略有不同的
记录数组

()的两种方法。您现在使用的实际上是a
,这意味着最有可能是因为recarrays是记录的1d数组,其中每个记录都是具有给定dtype的元组。
__

genfromtxt

__
recfromcsv

__
recarray
recfromcsv``my_data``recarray``my_data.shape= (210,)

因此,您可以尝试以下操作:

import numpy as npfrom numpy.lib.recfunctions import append_fieldsx = np.random.random(10)y = np.random.random(10)z = np.random.random(10)data = np.array( list(zip(x,y,z)), dtype=[('x',float),('y',float),('z',float)])data = np.recarray(data.shape, data.dtype, buf=data)data.shape#(10,)tot = data['x'] + data['y'] + data['z'] # sum(axis=1) won't work on recarraytot.shape#(10,)all_data = append_fields(data, 'total', tot, usemask=False)all_data#array([(0.4374783740738456 , 0.04307289878861764, 0.021176067323686598, 0.5017273401861498),#       (0.07622262416466963, 0.3962146058689695 , 0.27912715826653534 , 0.7515643883001745),#       (0.30878532523061153, 0.8553768789387086 , 0.9577415585116588  , 2.121903762680979 ),#       (0.5288343561208022 , 0.17048864443625933, 0.07915689716226904 , 0.7784798977193306),#       (0.8804269791375121 , 0.45517504750917714, 0.1601389248542675  , 1.4957409515009568),#       (0.9556552723429782 , 0.8884504475901043 , 0.6412854758843308  , 2.4853911958174133),#       (0.0227638618687922 , 0.9295332854783015 , 0.3234597575660103  , 1.275756904913104 ),#       (0.684075052174589  , 0.6654774682866273 , 0.5246593820025259  , 1.8742119024637423),#       (0.9841793718333871 , 0.5813955915551511 , 0.39577520705133684 , 1.961350170439875 ),#       (0.9889343795296571 , 0.22830104497714432, 0.20011292764078448 , 1.4173483521475858)], #      dtype=[('x', '<f8'), ('y', '<f8'), ('z', '<f8'), ('total', '<f8')])all_data.shape#(10,)all_data.dtype.names#('x', 'y', 'z', 'total')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号