假设我有以下数组:
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[ 9, 10, 11],
[12, 13, 14],
[15, 16, 17]],
[[18, 19, 20],
[21, 22, 23],
[24, 25, 26]]])
Run Code Online (Sandbox Code Playgroud)
我使用ravel()它的标准。这就是我得到的:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26])
Run Code Online (Sandbox Code Playgroud)
相反,我需要以不同的顺序进行解释,即:
0 9 18 1 10 19 2 11 20 3 12 21 4 13 22 5 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用递归来遍历 Clojure 中任意嵌套向量和映射的树,并返回仅包含关键字(包括顶部)的向量。
因此应返回以下示例数据:
[:top :top :top :top :top :top :top :top :bottom :bottom :bottom :bottom :bottom :bottom :bottom :bottom :bottom :bottom :bottom :bottom],
但没有特定的顺序。
有人可以帮我正确地做到这一点吗?以下是我到目前为止所拥有的。
(def sample [{:top {:top {:top [:bottom {:top {:top [:bottom :bottom :bottom]}} :bottom :bottom :bottom]}}},
{:top {:top [:bottom :bottom :bottom]}},
{:top [:bottom :bottom]}])
(defn make-flat [graph]
(loop [graph graph]
(if (every? keyword? graph) graph
(recur (into graph (flatten (seq (first (filter #(not (keyword? %)) graph)))))))))
(make-flat sample)
Run Code Online (Sandbox Code Playgroud) 我有两张表想使用“主键”链接。目前,我已使用该函数将一些列从sheet1导入sheet2
=Sheet1!A1(例如第一个单元格)。我的目的是完善sheet2中每条导入行的相关数据。但是,sheet1 与其他人共享,因此他们可以修改行的内容,而无需删除或修改我在sheet2 中添加的数据(而sheet1 中不存在这些数据)。
鉴于我的表有一列“id”可以被视为主键,我如何在sheet2中添加新数据,因为它将与“id”而不是行的位置相关(所以如果我更改sheet1中的id,我添加的数据将被删除,或者如果我将id移动到另一行,所有数据也将被移动)?
我有一个包含多个 JSON 对象的数组。位于表中的任何 JSON 数组中的最大元素数为 8。
这是数组原始值的示例:
variants
----------------------------------------------------------------
[
{
"id": 12388362846279,
"inventory_quantity": 10,
"sku": “sku1”
},
{
"id": 12388391387207,
"inventory_quantity": 31,
"sku": “sku2”
},
{
"id": 12394420142151,
"inventory_quantity": 12,
"sku": “sku3”
},
{
"id": 12394426007623,
"inventory_quantity": 4,
"sku": “sku4”
},
{
"id": 12394429022279,
"inventory_quantity": 9,
"sku": “sku5”
},
{
"id": 12394431414343,
"inventory_quantity": 15,
"sku": “sku6”
},
{
"id": 12394455597127,
"inventory_quantity": 22,
"sku": “sku7”
},
{
"id": 12394459856967,
"inventory_quantity": 0,
"sku": “sku8”
}
]
Run Code Online (Sandbox Code Playgroud)
我的查询尝试展平并解析数组以为每个对象返回一行:
select
variants[0]:sku,
variants[0]:inventory_quantity,
variants[1]:sku, …Run Code Online (Sandbox Code Playgroud) 我有一个包含几列的表,其中一些是相同长度的数组。我想取消它们的嵌套,以获取来自单独行中的数组的值的结果。
所以有这样的表:
我想去:
这就是它对这些数组列之一的工作原理:
WITH data AS
(
SELECT 1001 as id, ['a', 'b', 'c'] as array_1, [1, 2, 3] as array_2
UNION ALL
SELECT 1002 as id, ['d', 'e', 'f', 'g'] as array_1, [4, 5, 6, 7] as array_2
UNION ALL
SELECT 1003 as id, ['h', 'i'] as array_1, [8, 9] as array_2
)
SELECT id, a1
FROM data,
UNNEST(array_1) as a1
Run Code Online (Sandbox Code Playgroud)
有没有一些优雅的方法可以同时解除两个数组的嵌套?我想避免分别取消每一列的嵌套,然后将所有内容连接在一起。
我正在尝试将分层数组的转换泛化为平面数组。我有这种对象,它有相同类型的孩子,有相同类型的孩子等等。
[{
id: "123",
children: [
{
id: "603",
children: [
{
id: "684",
children: [
...
]
},
{
id: "456",
children: []
}
]
}
]
}]
Run Code Online (Sandbox Code Playgroud)
我找到了一种展平它的方法,并且我有嵌套层数的信息。一层深(作品):
let result = myArray.flat()
.concat(myArray.flatMap(comm => comm.children));
Run Code Online (Sandbox Code Playgroud)
两层深(作品):
let result = myArray.flat()
.concat(myArray.flatMap(comm => comm.children))
.concat(myArray.flatMap(comm => comm.children.flatMap(comm2 => comm2.children)));
Run Code Online (Sandbox Code Playgroud)
但是如何在函数中生成此代码以处理任何深度?我已经尝试过这个,但它不起作用:
flatFunct = (myArray, deep) => {
let func = comm => comm.children;
let flatMapResult = myArray.flat();
for (let i = 0; i < deep; i++) {
flatMapResult = flatMapResult.concat(() …Run Code Online (Sandbox Code Playgroud) 我当前的 df:
\n\n header1 header2 \n Siam Thailand \n Indonesie Indonesia \n Arabie Yemen \n Ceylon Sri Lanka \nRun Code Online (Sandbox Code Playgroud)\n\n所以我的 df 的标头是“header1”和“header2”。这些值是这两个标题下的所有内容。
\n\n我想将这个 df 转换为平面字典,其中字典键是 header1 的值,字典值是 header2 的值,如下所示:
\n\n期望的输出:
\n\n{'Siam': 'Thailand', 'Indonesi\xc3\xab': 'Indonesia', 'Arabi\xc3\xab': 'Yemen', 'Ceylon': 'Sri Lanka'}\nRun Code Online (Sandbox Code Playgroud)\n\n电流输出:
\n\n{'header2':{'Siam': 'Thailand', 'Indonesie': 'Indonesia', 'Arabie': 'Yemen', 'Ceylon': 'Sri Lanka'}}\nRun Code Online (Sandbox Code Playgroud)\n\n我的代码:
\n\ndf.to_dict()\nRun Code Online (Sandbox Code Playgroud)\n 在 F# 中,我可以使用yield/yield!语法将单个元素和数组的混合组合成一个集合,例如
let result = seq {
yield 1
yield! [2;3;4;5]
yield! [6;7]
yield 8
}
printfn "%A" result
// Prints: seq [1; 2; 3; 4; ...]
Run Code Online (Sandbox Code Playgroud)
我想知道在 Haskell 中是否有类似的方法。
目的:
我想转换以下架构:
group, id, name
A, 12345, "eeny"
A, 23456, "meeny"
A, 34567, "miney mo"
B, 99999, "foo"
B, 88888, "bar"
B, 77777, "foobar"
Run Code Online (Sandbox Code Playgroud)
成:
group, id1, name1, id2, name2, id3, name3
A, 12345, "eeny", 23456, "meeny", 34567, "miney mo"
B, 99999, "foo", 88888, "bar", 77777, "foobar"
Run Code Online (Sandbox Code Playgroud)
在Python的上下文中,我假设可以使用Pandas groupby()和/或unstack()来完成,但我遇到的大多数文档都涉及数值计算而不是字符串.
任何帮助将不胜感激.谢谢!
例如,我有以下嵌套向量:
[[[0.582198689235419 -0.34713183143727 0.4685311493624731]
[-0.38928013774079284 -0.5901700383677557 -0.37573234072157]
[0.6716356761877877 -0.19645167952721243 -0.5700686091940252]]
[[0.0027162308840597005 -0.4483592764429284 -0.4766278022217257 -0.2724018313051576]
[-0.2765881229144672 -0.8030656496255356 -0.16159395457031567 -0.27432324260043084]
[-0.6154630466545907 -0.60573539482247 0.4417814561800192 -0.5559788990464504]
[0.6194560094536031 -0.3663074359460578 -0.5704311251195602 0.7194827876969362]]]
Run Code Online (Sandbox Code Playgroud)
我有以下扁平的矢量:
(0.5366343712173423
-0.816449781850872
-0.16066485785704843
0.9816561233924161
-0.09646744313584676
-0.2619662625757997
-0.9946004265996822
-0.14096299956754854
0.579260850612288
-0.827601452607939
-0.24934665032374648
-0.42272393175707873
0.11239245249400165
-0.29878238708035043
-0.61522274672097
0.8298721730401472
0.5016214138116059
0.11633537727916243
-0.0631891708267196
-0.26569217599364303
0.20900664784109668
0.2005869506108401
-0.2658279978034501
0.3383997403318165
-0.09353513546647907)
Run Code Online (Sandbox Code Playgroud)
我希望将展平的矢量转换为嵌套矢量,该矢量遵循与上面给出的嵌套矢量相同的结构.Clojure或库中有核心功能吗?我有一些关于如何解决这个问题的想法,但是它们看起来效率都很低,而且这个操作将用于大向量.
非常感谢你提前.