- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为简单起见,让我们从 numpy 文档中复制诊断 ndarray 子类:
import numpy as np
class MySubClass(np.ndarray):
def __new__(cls, input_array, info=None):
obj = np.asarray(input_array).view(cls)
obj.info = info
return obj
def __array_finalize__(self, obj):
print('In __array_finalize__:')
print(' self is %s' % repr(self))
print(' obj is %s' % repr(obj))
if obj is None: return
self.info = getattr(obj, 'info', None)
>>> x = MySubClass(np.ones((1,5)))
In __array_finalize__:
self is MySubClass([[1., 1., 1., 1., 1.]])
obj is array([[1., 1., 1., 1., 1.]])
>>> y = x.T
In __array_finalize__:
self is MySubClass([[1., 1., 1., 1., 1.]])
obj is MySubClass([[1., 1., 1., 1., 1.]])
__array_finalize__
.除了将“最终确定”一词的含义扩展到全新领域之外,这种行为的目的是什么?
最佳答案
这是因为创建新对象时,它们依赖于已经可用的(通用)函数 PyArray_NewFromDescrAndBase
来处理内存分配。 PyArray_Transpose
的源代码揭示首先从现有数组创建新对象,具有相似的形状和步幅,然后通过访问先前分配的内存来纠正这些:
/*
* this allocates memory for dimensions and strides (but fills them
* incorrectly), sets up descr, and points data at PyArray_DATA(ap).
*/
Py_INCREF(PyArray_DESCR(ap));
ret = (PyArrayObject *) PyArray_NewFromDescrAndBase(
Py_TYPE(ap), PyArray_DESCR(ap),
n, PyArray_DIMS(ap), NULL, PyArray_DATA(ap),
flags, (PyObject *)ap, (PyObject *)ap);
if (ret == NULL) {
return NULL;
}
/* fix the dimensions and strides of the return-array */
for (i = 0; i < n; i++) {
PyArray_DIMS(ret)[i] = PyArray_DIMS(ap)[permutation[i]];
PyArray_STRIDES(ret)[i] = PyArray_STRIDES(ap)[permutation[i]];
}
PyArray_NewFromDescrAndBase
负责
invoking __array_finalize__
因此该方法接收的版本具有不正确的形状和步幅(即非转置)。可以做不同的事情,但它需要
PyArray_NewFromDescrAndBase
的额外参数。将调用推迟到
__array_finalize__
然后可以在调整形状和步幅后手动完成。
关于python - 当子类化 ndarray 时,为什么转置发生在 __array_finalize__ 之后而不是之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60714489/
我有一个包含在父 ScrollView (不是直接 subview )中的子 ScrollView 。我想要的是,一旦子 ScrollView 到达其内容的末尾,父 ScrollView 就开始沿相同
我有一个典型的 MVVM 场景: 我有一个绑定(bind)到 StepsViewModels 列表的 ListBox。 我定义了一个 DataTemplate,以便将 StepViewModels 呈
我的 firebase 数据库的结构如下图所示 image of my firebase DB stucture 每当有新消息时,它都会添加到特定的 ID 下,如图所示,它是“59a004ce9bfe
基本上,我的目标是尝试为整个 Web 项目创建一个键盘 Controller ,并且我希望能够保留在父文档上创建的键绑定(bind),并让子 iframe 继承它们。这可能吗? 这是我现在拥有的示例设
我正在开发一个 asp.net 网络应用程序。 有一个母版页的子窗体。母版页没有定义任何高度,但它为 子窗体 定义了一个 X px 高度。 在子表单上它有一个 fieldset 容器,在这 2 个 t
我有一个包含 PictureBox 和 Label 的 UserControl。控件在不同的事件(例如 onMouseEnter、OnMouseLeave)时在 PictureBox 中加载三个不同的
我有一个 viewpager,在其中一个 fragment 中,我有两个单独的 fragment ,分别包含一个垂直和一个水平的 recyclerview。 当我将水平 recyclerview 滚动
我正在尝试抽象一个我在应用程序中经常使用的模式,我可以在另一个屏幕中使用它,该屏幕应该发送来自另一个屏幕内的 TextInput 组件的 Prop 。问题是,当我将 TextInput 组件留空时,它
嵌套滚动? 我在 PageView 中有三个垂直页面我希望能够在两者之间切换。 页面由可滚动的 ListView 组成s。 当页面处于焦点时,显示的列表应该是垂直可滚动的,但是当列表滚动到任一端时,我
这个问题的 jsFiddle 可以在这里找到:http://jsfiddle.net/Hsw9F/1/ JavaScript(console.log 调试信息可在 jsFiddle 中找到) var
HTML: Software Update 2010
我正在制作一个响应式网站。我有 3 个 div (.block),我需要将它们水平放置在一起。 当屏幕足够宽时,这很容易实现。但是,当我使浏览器更窄时,第三个 div (3) 换行到下一行,但我想要的
资源和背景 https://jsfiddle.net/wwx100f8/69/ 我正在尝试创建一个可扩展/可折叠的 Accordion 来容纳餐厅的食物选项,这是一个类似于 Just-Eat 或 Hu
我有一个嵌套的 ViewPager,效果非常好。唯一的问题是,一旦子 ViewPager 位于最后一项并且我进一步滚动,父 ViewPager 就会滚动。我不想要这种行为。 我如何实现这一目标? 这是
例如,我有主要 Activity 。我打电话的地方: Intent callchild = new Intent(this, childActivity.class); startActivity(c
我有一个定义 FormGroup 的 Angular 组件,它有一个嵌套的 FormGroup 作为它的控件之一。 子 FormGroup 作为 @Input 参数传递给子 component,并且在
这个问题与another question I asked有关 基本上,我有 2 个水平对齐的 div。两者都位于名为“.Parent”的 div 中,因此结构如下: s
基本上我需要 div.content 具有 15px 的默认填充,除非 div 具有子 div.products-list。如果 .products-list 的子 div 存在,我需要 div.co
代码笔:http://codepen.io/anon/pen/qaVRqw 我试图让 innerDiv 在文本超出父 div 之前换行文本。让所有文本都显示在 innerDiv 中但又被换行的最佳方式
我有一个名为 main 的父 div。它有一堆子 div,我向左或向右浮动。 当我完成最后一个 float 时,主 div 的高度完全消失,打乱了我的页面布局。我给了它一个高度:100%;只是现在,但
我是一名优秀的程序员,十分优秀!