相关疑难解决方法(0)

Numpy:x和y数组的笛卡尔积指向单个2D点阵列

我有两个numpy数组,定义网格的x和y轴.例如:

x = numpy.array([1,2,3])
y = numpy.array([4,5])
Run Code Online (Sandbox Code Playgroud)

我想生成这些数组的笛卡尔积来生成:

array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])
Run Code Online (Sandbox Code Playgroud)

在某种程度上,由于我需要在循环中多次执行此操作,因此效率不高.我假设将它们转换为Python列表并使用itertools.product并返回到numpy数组并不是最有效的形式.

python numpy cartesian-product

134
推荐指数
8
解决办法
5万
查看次数

在NumPy数组中概括切片操作

这个问题基于这个较老的问题:

给定一个数组:

In [122]: arr = np.array([[1, 3, 7], [4, 9, 8]]); arr
Out[122]: 
array([[1, 3, 7],
       [4, 9, 8]])
Run Code Online (Sandbox Code Playgroud)

鉴于其指数:

In [127]: np.indices(arr.shape)
Out[127]: 
array([[[0, 0, 0],
        [1, 1, 1]],

       [[0, 1, 2],
        [0, 1, 2]]])
Run Code Online (Sandbox Code Playgroud)

我怎样才能将它们整齐地叠在一起形成一个新的2D阵列?这就是我想要的:

array([[0, 0, 1],
       [0, 1, 3],
       [0, 2, 7],
       [1, 0, 4],
       [1, 1, 9],
       [1, 2, 8]])
Run Code Online (Sandbox Code Playgroud)

Divakar的这个解决方案是我目前用于2D阵列的解决方案:

def indices_merged_arr(arr):
    m,n = arr.shape
    I,J = np.ogrid[:m,:n]
    out = np.empty((m,n,3), dtype=arr.dtype)
    out[...,0] = I
    out[...,1] = …
Run Code Online (Sandbox Code Playgroud)

python arrays indexing numpy

8
推荐指数
2
解决办法
456
查看次数

如何在python中将3d数组转换为数据帧

我有一个 3d 数组,如下所示:

    ThreeD_Arrays = np.random.randint(0, 1000, (5, 4, 3))
    
    array([[[715, 226, 632],
            [305,  97, 534],
            [ 88, 592, 902],
            [172, 932, 263]],

           [[895, 837, 431],
            [649, 717,  39],
            [363, 121, 274],
            [334, 359, 816]],

           [[520, 692, 230],
            [452, 816, 887],
            [688, 509, 770],
            [290, 856, 584]],

           [[286, 358, 462],
            [831,  26, 332],
            [424, 178, 642],
            [955,  42, 938]], 

           [[ 44, 119, 757],
            [908, 937, 728],
            [809,  28, 442],
            [832, 220, 348]]])
Run Code Online (Sandbox Code Playgroud)

现在我想把它变成DataFrame这样:

此处显示了预期结果

添加一个Date列,如指示和列名A, …

python dataframe

7
推荐指数
2
解决办法
2万
查看次数

Python:将3D数组中的值存储到csv

我有以下问题。我有一个3D数组,例如 matrix = np.zeros((30,30,100))每个条目都是一个坐标并获取一个值。因此matrix [0][0][0],坐标x = 0,y0,z = 0且值为0。现在我想将所有值存储在这样的csv中,其中前3行是坐标,第4行是相应值:

在此处输入图片说明

numpy是否有一种快速的方法来做到这一点?

python csv arrays numpy

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

标签 统计

python ×4

numpy ×3

arrays ×2

cartesian-product ×1

csv ×1

dataframe ×1

indexing ×1