我正在尝试将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
在我的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)
我想实现这种编程策略以节省内存.我知道这个例子中保存的内存不是太大,但对于我的实际项目,我正在使用更大的数据结构.我想知道这种编程习惯是否存在任何危险,例如数据没有连续存储或者更容易出现内存泄漏.或者这是一种节省内存而没有很多缺点的有用方法吗?谢谢.
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) 来自: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) 我尝试写一个 int-Array,但是
为什么我不能写:
int[][,] JaggedInt = new int[5][5,5];
Run Code Online (Sandbox Code Playgroud)
以及如何编写与上述类似的 Jagged int。
为了激发我的问题,请考虑在Julia 中处理元素类型的锯齿状数组(为简单起见)时的情况Int.有两种方法可以存储它们:
Vector{Vector{Int}}Vector{Union{Vector{Int}, Int}}(特别是,如果想要存储足够多的1元素向量)我的问题是哪一个更有效/更快/更好?
为了回答这个问题,我需要知道每个内容是如何存储在内存中的.即:
我假定的类型的变量Vector{Vector{Int}},将被认为是均匀的型阵列,因此,我希望它被存储连续在存储器中,并且这样更CPU缓存友好.我对吗?或者连词只适用于元素数据类型是原始的数组?
一个类型的变量是否会Vector{Union{Vector{Int}, Int}}被视为异构数组,并且因此在内存中不 连续存储?
如何将内存中连续表示的好处与不具有1-元素数组成员的数组容器的好处进行比较,即将它们存储为原始数据类型(Int在本例中)?哪一个产生更高的效率?
我写了一些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)
为什么?那我该怎么办
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 中最快的方法是什么?
提前致谢!
我正在用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.
我正在尝试获得一个看起来像这样的锯齿状 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。 …
jagged-arrays ×10
arrays ×4
c# ×4
julia ×2
python ×2
ragged ×2
allocation ×1
fortran ×1
matrix ×1
new-operator ×1
pandas ×1
pipeline ×1
powershell ×1
pytorch ×1