标签: flatten

Ravel() 特殊顺序的 3D 数组 - Python

假设我有以下数组:

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)

python numpy flatten multidimensional-array

3
推荐指数
1
解决办法
1430
查看次数

如何在 Clojure 中递归地展平任意嵌套的向量和映射?

我正在尝试使用递归来遍历 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)

tree recursion nested clojure flatten

3
推荐指数
1
解决办法
2273
查看次数

Google Sheets 使用主键链接两个工作表

我有两张表想使用“主键”链接。目前,我已使用该函数将一些列从sheet1导入sheet2 =Sheet1!A1(例如第一个单元格)。我的目的是完善sheet2中每条导入行的相关数据。但是,sheet1 与其他人共享,因此他们可以修改行的内容,而无需删除或修改我在sheet2 中添加的数据(而sheet1 中不存在这些数据)。

鉴于我的表有一列“id”可以被视为主键,我如何在sheet2中添加新数据,因为它将与“id”而不是行的位置相关(所以如果我更改sheet1中的id,我添加的数据将被删除,或者如果我将id移动到另一行,所有数据也将被移动)?

arrays flatten google-sheets vlookup google-query-language

3
推荐指数
1
解决办法
5059
查看次数

雪花中具有多个 JSON 对象的横向展平数组

我有一个包含多个 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)

arrays json flatten snowflake-cloud-data-platform

3
推荐指数
1
解决办法
4929
查看次数

展平 BigQuery 表中多个相同大小的数组列

我有一个包含几列的表,其中一些是相同长度的数组。我想取消它们的嵌套,以获取来自单独行中的数组的值的结果。

所以有这样的表:

输入表

我想去:

输出表

这就是它对这些数组列之一的工作原理:

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)

有没有一些优雅的方法可以同时解除两个数组的嵌套?我想避免分别取消每一列的嵌套,然后将所有内容连接在一起。

sql flatten google-bigquery unnest

3
推荐指数
1
解决办法
3908
查看次数

Generify 将分层数组转换为平面数组

我正在尝试将分层数组的转换泛化为平面数组。我有这种对象,它有相同类型的孩子,有相同类型的孩子等等。

[{
        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)

javascript arrays generics nested flatten

3
推荐指数
1
解决办法
54
查看次数

如何将 pandas 数据框转换为没有列标题的字典?

我当前的 df:

\n\n
\n\n
   header1    header2  \n   Siam       Thailand      \n   Indonesie  Indonesia       \n   Arabie     Yemen       \n   Ceylon     Sri Lanka      \n
Run 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'}\n
Run Code Online (Sandbox Code Playgroud)\n\n

电流输出:

\n\n
{'header2':{'Siam': 'Thailand', 'Indonesie': 'Indonesia', 'Arabie': 'Yemen', 'Ceylon': 'Sri Lanka'}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的代码:

\n\n
df.to_dict()\n
Run Code Online (Sandbox Code Playgroud)\n

python dictionary flatten dataframe pandas

3
推荐指数
1
解决办法
1261
查看次数

在 Haskell 中展平列表和单个元素的混合物

在 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 中是否有类似的方法。

f# haskell list flatten

3
推荐指数
1
解决办法
90
查看次数

展平并展开csv文件?

目的:

我想转换以下架构:

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()来完成,但我遇到的大多数文档都涉及数值计算而不是字符串.

任何帮助将不胜感激.谢谢!

python csv flatten pandas

2
推荐指数
1
解决办法
745
查看次数

Clojure:将嵌套的矢量格式应用于展平的矢量

例如,我有以下嵌套向量:

[[[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或库中有核心功能吗?我有一些关于如何解决这个问题的想法,但是它们看起来效率都很低,而且这个操作将用于大向量.

非常感谢你提前.

nested structure vector clojure flatten

2
推荐指数
1
解决办法
71
查看次数