上周我开始使用JavaScript来创建一些D3可视化,并且已经变得非常困难于只能是一个非常简单的任务。
我有不同国家/地区的各种数据系列,每个系列都存储在数组中,例如
var uk = [1,2,3,4,5,6,7,8],
us = [8,4,7,3,7,8,3,2],
fr = [4,6,8,3,2,6,8,4];
我想创建一个主数组,它包含所有这些单独的数组,而不是连接/合并,所以:
world = [uk, us, fr, etc]
如何以这种方式添加数组,以便它们不会连接在一起?请注意,有数百个国家/地区,因此我无法手动键入它们,如上所述,并且我实际上是从单个csv文件中提取它们,因此在我提取它们时可以轻松地迭代它们。 Array.push似乎和concat一样吗?
由于
答案 0 :(得分:7)
您可以使用arr=np.zeros((height,width), np.float)
for i in range(0, number_frames):
imarr=np.array(numpy_frames_original[i,:,:].astype(float))
arr=arr+imarr/number_frames
img_avg=np.array(np.round(arr),dtype=np.uint8)
numpy_frames = np.array(np.absolute(np.round(np.array(numpy_frames_original.astype(float))-np.array(img_avg.astype(float)))), dtype=np.uint8)
push
然后,您当然会以数字方式引用不同的子集/数组 即worlds [0] ='uk'数据
您可以使用var worlds = [];
worlds.push(uk);
worlds.push(us);
worlds.push(fr);
,这样您就可以使用字符串object
访问它们,并使代码更具可读性。即。
key
并访问以下数据:
var worlds = {
"uk" : uk,
"us" : us
};
或
worlds.uk // will be the uk dataset/array
N.B。虽然不是问题,但我看到你正在使用D3。 D3有一个json方法,它读取json文件并将其用作数据。您最好使用json对象来保存数据并将其直接传递到D3中。如果它有帮助,这是D3 docs for .json。
也可以将csv文件传递给D3,如果你不编辑你的数据,那么也可能是一个解决方案
答案 1 :(得分:1)
Array.push似乎和concat一样吗?
不是真的,这就是为什么它采用不同的方法。你真正想要的是推动。也许是这样的:
world.push(uk, us, fr);
答案 2 :(得分:0)
您可以非常轻松地将数组添加到另一个数组中,如下所示:
var world = [
uk,
us,
fr,
etc
];
这基本上就是你已输入的内容。它肯定会起作用,不会将它们连接在一起。