标签: jagged-arrays

将锯齿状数组直接转换为2D数组,而无需迭代每个项目?

我正在尝试将DataTable保存到Excel工作表中。我的代码是这样的。

Excel.Range range = xlWorkSheet.get_Range("A2");
range = range.get_Resize(dtExcel.Rows.Count, dtExcel.Columns.Count);
object[,] rng1 = new object[dtExcel.Rows.Count, dtExcel.Columns.Count];
Run Code Online (Sandbox Code Playgroud)

Excel范围要求范围值作为array [,],但我将DataTable作为锯齿状的array [] []。

object[][] rng2 = dtExcel.AsEnumerable().Select(x => x.ItemArray).ToArray();
Run Code Online (Sandbox Code Playgroud)

Is there any built-in function to directly convert the jagged array[][] to a 2D array[][] ? Iterating through Excel, DataTable and assigning seems slower with bulk data..

Also I don't want to setup querying with DSN for excel.. I chose excel storage to avoid the configuring of any databases.. :P I found a detailed explanation …

c# jagged-arrays type-conversion export-to-excel multidimensional-array

5
推荐指数
1
解决办法
1912
查看次数

在Fortran中使用具有多级分配的锯齿状数组是否有任何问题?

在我的Fortran代码中,我想使用具有多级分配的锯齿状数组.我的意思是一个示例代码

module nonsquare_matrix_mod
implicit none

   type :: nonsquare_matrix 
      integer :: d
      real*8, dimension(:), allocatable :: vector
   end type nonsquare_matrix

   type(nonsquare_matrix),dimension(:),allocatable :: mymatrix

end module nonsquare_matrix_mod

program nonsquare_matrix_test
   use nonsquare_matrix_mod
   implicit none

integer, parameter :: max_size=50
integer :: i

allocate(mymatrix(max_size))
do i=1,max_size
    allocate(mymatrix(i) % vector(i))
end do

print *, "allocated"


end program
Run Code Online (Sandbox Code Playgroud)

我想实现这种编程策略以节省内存.我知道这个例子中保存的内存不是太大,但对于我的实际项目,我正在使用更大的数据结构.我想知道这种编程习惯是否存在任何危险,例如数据没有连续存储或者更容易出现内存泄漏.或者这是一种节省内存而没有很多缺点的有用方法吗?谢谢.

fortran allocation jagged-arrays

5
推荐指数
1
解决办法
769
查看次数

PyTorch中“参差不齐的张量”的解决方法是什么?

Tensorflow提供参差不齐的张量(https://www.tensorflow.org/guide/ragged_tensor)。但是,PyTorch不提供这种数据结构。有没有在PyTorch中构造类似内容的解决方法?

import numpy as np
x = np.array([[0], [0, 1]])
print(x)  # [list([0]) list([0, 1])]

import tensorflow as tf
x = tf.ragged.constant([[0], [0, 1]])
print(x)  # <tf.RaggedTensor [[0], [0, 1]]>

import torch
# x = torch.Tensor([[0], [0, 1]])  # ValueError
Run Code Online (Sandbox Code Playgroud)

python jagged-arrays ragged pytorch

5
推荐指数
1
解决办法
136
查看次数

从锯齿状数组初始化中省略c#new

来自:http://msdn.microsoft.com/en-us/library/2s05feca.aspx

请注意,您不能从元素初始化中省略new运算符,因为元素没有默认初始化:

int[][] jaggedArray3 = 
{
    new int[] {1,3,5,7,9},
    new int[] {0,2,4,6},
    new int[] {11,22}
};
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

为什么可以省略新的:

int[]    arrSimp = { 1, 2, 3 };
int[,]   arrMult = { { 1, 1 }, { 2, 2 }, { 3, 3 } };
Run Code Online (Sandbox Code Playgroud)

但不可能:

int[][,] arrJagg = {new int[,] { { 1, 1} }, new int[,] { { 2, 2 } }, new int[,] { { 3, 3 } } };
Run Code Online (Sandbox Code Playgroud)

c# jagged-arrays new-operator

4
推荐指数
1
解决办法
807
查看次数

二维数组错误的锯齿状数组

我尝试写一个 int-Array,但是

为什么我不能写:

int[][,] JaggedInt = new int[5][5,5];
Run Code Online (Sandbox Code Playgroud)

以及如何编写与上述类似的 Jagged int。

c# jagged-arrays

4
推荐指数
1
解决办法
102
查看次数

Julia的Vector {Vector {T}}是否连续存储在内存中?

为了激发我的问题,请考虑在Julia 中处理元素类型的锯齿状数组(为简单起见)时的情况Int.有两种方法可以存储它们:

  1. Vector{Vector{Int}}
  2. As Vector{Union{Vector{Int}, Int}}(特别是,如果想要存储足够多的1元素向量)

我的问题是哪一个更有效/更快/更好?

为了回答这个问题,我需要知道每个内容是如何存储在内存中的.即:

  1. 我假定的类型的变量Vector{Vector{Int}},将被认为是均匀的型阵列,因此,我希望它被存储连续在存储器中,并且这样更CPU缓存友好.我对吗?或者连词只适用于元素数据类型是原始的数组?

  2. 一个类型的变量是否会Vector{Union{Vector{Int}, Int}}被视为异构数组,并且因此在内存中 连续存储?

  3. 如何将内存中连续表示的好处与不具有1-元素数组成员的数组容器的好处进行比较,即将它们存储为原始数据类型(Int在本例中)?哪一个产生更高的效率?

arrays jagged-arrays multidimensional-array julia ragged

4
推荐指数
1
解决办法
427
查看次数

为什么PowerShell会自动展平数组?

我写了一些pwsh代码

"a:b;c:d;e:f".Split(";") | ForEach-Object { $_.Split(":") }
# => @(a, b, c, d, e, f)
Run Code Online (Sandbox Code Playgroud)

但是我想要这个

// in javascript
"a:b;c:d;e:f".split(";").map(str => str.split(":"))
[ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ] ]
Run Code Online (Sandbox Code Playgroud)

嵌套数组

@(
    @(a, b),
    @(c, d),
    @(e, f),
)
Run Code Online (Sandbox Code Playgroud)

为什么?那我该怎么办

arrays powershell pipeline jagged-arrays

4
推荐指数
1
解决办法
92
查看次数

Julia:计算数组数组中元素的总数

Julia 中是否有一个函数可以为您提供数组数组(或“锯齿状数组”)中的元素总数?

这就是我的意思:

my_array_of_arrays = [ [1, 5], [6], [10, 10, 11] ] 
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个desired_function(my_array_of_arrays)可以返回的函数 6

如果不是,那么在 Julia 中最快的方法是什么?

提前致谢!

arrays jagged-arrays julia arrayofarrays

4
推荐指数
1
解决办法
221
查看次数

C#阵列矩阵

我正在用c#编写一个程序,它将12个元素的数组与一个三元组值相关联.我想将数据存储在维度[n,m,p]的矩阵中,但每个元素实际上是一个数组.现实世界的应用是为3D笛卡尔空间中的每个点节省12个传感器的输出.

我试过这样的事情:

int[][,,] foo = new int[12][,,];
Run Code Online (Sandbox Code Playgroud)

但是,如果我是对的,那么创建一个包含12个矩阵3x3的数组,而我想要一个12个元素数组的NxMxP矩阵.

如果我尝试像这样指定矩阵尺寸:

int[][,,] foo = new int[12][N,M,P];
Run Code Online (Sandbox Code Playgroud)

我收到错误CS0178(Invalid rank specifier: expected ',' or ']')和CS1586(Array creation must have array size or array initializer).

我还在学习c#,请原谅我这个琐碎的问题,但我无法解决这个问题.我正在使用visual studio 2015.

c# arrays matrix jagged-arrays

3
推荐指数
2
解决办法
1599
查看次数

将锯齿状数组转换为 Pandas 数据框

我正在尝试获得一个看起来像这样的锯齿状 2D 列表

l = [
    [(1, 0.8656769), (2, 0.08902887), (5, 0.040293545)],
    [(1, 0.5918752), (2, 0.04440181), (4, 0.05204634), (5, 0.3066661)],
    [(1, 0.26327166), (2, 0.26078925), (4, 0.24160784), (5, 0.22958432)],
    [(2, 0.92498404), (5, 0.065140516)],
    [(1, 0.9882947)],
    [(0, 0.23412614), (1, 0.031903207), (2, 0.03044448), (3, 0.6480669), (4, 0.053342175)],
    [(0, 0.056099385), (3, 0.9084766), (5, 0.031809118)],
    [(2, 0.39833495), (4, 0.52058107), (5, 0.077259734)],
    [(0, 0.46812743), (1, 0.10643007), (3, 0.15962379), (4, 0.017917762), (5, 0.24552101)],
    [(0, 0.2556301), (1, 0.7391994)]
]
Run Code Online (Sandbox Code Playgroud)

变成一个如下所示的数据框:

在此处输入图片说明

在 中l,每一行可能包含也可能不包含所有列。每个元组的结构如下(column_label, cell_value)。如果该行缺少一列,则其值应在数据框中设置为 0。 …

python jagged-arrays pandas

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