当前位置: 首页 > 知识库问答 >
问题:

给定变量的符合数组形状

壤驷华辉
2023-03-14

我需要用NetCDF文件做一些计算。我有两个变量,它们的尺寸和大小如下:

A [time | 1] x [lev | 12] x [lat | 84] x [lon | 228]
B [lev | 12]

我需要的是产生一个新的数组,C,形状为(1,12,84,228),其中B内容被传播到A的所有维度。

通常,这在NCL中很容易通过conform函数实现。我不确定在Python中这与什么是等价的。

非常感谢。

共有1个答案

微生令
2023-03-14

numpy.broadcast_to函数可以做这样的事情,尽管在这种情况下,它确实需要B向其添加几个额外的尾随大小1维来满足Numpy广播规则

>>> import numpy
>>> B = numpy.arange(12).reshape(12, 1, 1)
>>> B
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>>> B = B.reshape(12, 1, 1)
>>> B.shape
(12, 1, 1)
>>> C = numpy.broadcast_to(b, (1, 12, 84, 228))
>>> C.shape
(1, 12, 84, 228)
>>> C[0, :, 0, 0]
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])
>>> C[-1, :, -1, -1]
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

 类似资料:
  • 我正在将一个变量赋给一个数组,它是我在刀片文件中声明的。它返回一个错误 下面是我的代码: 我无法理解这个错误。谢谢!

  • 我正在寻找以下问题的答案。 给定一组整数(无重复项)和一个和,找出集合元素的所有可能组合,并求和。解的顺序并不重要(解{2,2,3}和{3,2,2}是相等的)。 请注意,最终组合不需要是集合,因为它可以包含重复。 示例:集合{2,3,5}和10 结果:{2, 2, 2, 2, 2},{2,2,3,3},{2,3,5},{5,5} 我已经研究过子集和问题以及硬币兑换问题,但不能使它们适应我的需要。我

  • 我在一次采访中被问到以下问题。虽然我用n元树回答了这个问题,但有人告诉我这还不够好。所以,我很好奇,什么是它的最佳解决方案。 输入:整数数组:[2,3,7]和总和:10 输出:加起来等于和的所有数组元素组合(例如2、2、3、3、7等) 谢了小泰

  • 有没有办法让这个和C 20一起工作? 我得到这个丑陋的错误: test.cpp:13: 10:错误:不匹配'操作员='(操作数类型是'std::范围::视图::__adaptor::_RangeAdaptorClosurestd::范围::视图:: 我尝试谷歌搜索一些范围阿普托关闭的东西,但它没有多大意义

  • 2、联合类型变量的定义 联合数据类型的变量只能用第一个字段的数据类型来进行初始化。 例如: U1 DATATYPE <'J'> ;定义一个联合变量,并初始化其值 U2 DATATYPE <1234H> ;初始化错误,只能用字节数据来初始化 U3 UNION1 <1> 3、联合类型字段的引用 定义了联合类型的变量后,就可根据需要,以不同的数据类型或字段名来存取该联合类型中的数据。引用其字段的具体形式

  • 问题内容: 第一个System.out打印 2 并且应该打印,而第二个System打印 65 。我已经用这种语言编程了一年多了,据我所知这是不可能发生的!有什么帮助吗? 上面的代码在两行上都显示 9 。 问题答案: 当你这样做,之前仅仅是一个参考阵列, NO 新阵列已创建并分配给。因此,当您查看自己的价值时,基本上就是查看的价值,反之亦然。只是的别名。这就是为什么在第二张照片中您得到65。 检查该