嘿伙计们我需要帮助..
我想使用tensorflows数据导入,通过调用结构化numpy数组中的features / labels矢量来加载数据。
https://www.tensorflow.org/programmers_guide/datasets#consuming_numpy_arrays
我想通过将2个向量(feature_vec和label_vec)连续添加到numpy结构化数组来创建这样的结构化数组。
import numpy as np
# example vectors
feature_vec= np.arange(10)
label_vec = np.arange(10)
# structured array which should get the vectors
struc_array = np.array([feature_vec,label_vec],dtype=([('features',np.float32), ('labels',np.float32)]))
# How can I add now new vectors to struc_array?
struc_array.append(---)
我想稍后通过使用fieldname从文件调用加载特征向量(现在是矩阵)时加载此数组:
with np.load("/var/data/training_data.npy") as data:
features = data["features"] # matrix containing feature vectors as rows
labels = data["labels"] #matrix containing labels vectors as rows
我尝试编码的所有内容都是完整的废话..从来没有得到正确的输出..
感谢您的帮助!
答案 0 :(得分:1)
不要创建NumPy数组然后追加它。这并没有多大意义,因为NumPy数组具有固定的大小并且需要一个完整的副本来附加单个行或列。相反,创建一个列表,附加到它,然后在最后构造数组:
vecs = [feature_vec,label_vec]
dtype = [('features',np.float32), ('labels',np.float32)]
# append as many times as you want:
vecs.append(other_vec)
dtype.append(('other', np.float32))
struc_array = np.array(vecs, dtype=dtype)
当然,你可能需要ot
答案 1 :(得分:0)
不幸的是,这并没有解决问题。
我想通过使用:
来获取结构化数组中的标签或功能labels = struc_array['labels']
features = struc_array['features']
但是当我像你一样使用结构化数组时,标签和特征包含所有给定的附加向量:
import numpy as np
feature_vec= np.arange(10)
label_vec = np.arange(0,5,0.5)
vecs = [feature_vec,label_vec]
dtype = [('features',np.float32), ('labels',np.float32)]
other_vec = np.arange(6,11,0.5)
vecs.append(other_vec)
dtype.append(('other', np.float32))
struc_array = np.array(vecs, dtype=dtype)
# This contains all vectors.. not just the labels vector
labels = struc_array['labels']
# This also contains all vectors.. not just the feature vector
features = struc_array['features']