我们假设两个大多维numpy数组someVector.push_back(std::move(object.second));
和a
。我想执行元素操作,例如逐个元素地添加它们:
b
在上述情况下,将为c = a + b
的结果分配新的内存。然后,对此存储器的引用存储在a + b
中。
现在,让我们假设c
的内存已被分配。为了有一个简单的示例,将尺寸数设置为2,我可以执行以下操作:
c
我找不到任何有关如何正确实现上述内容的文档。我可以想象两种方式:
c[:, :] = a + b
。在将数据(即运算结果)复制到a + b
之前,将结果存储到此“临时”存储器中。c[:, :]
的结果直接进入a + b
。我尝试了一些代码,并且-在这里我可能是绝对错误的-从性能角度来看,似乎第一种选择更有可能。我对吗?如果是这样,如何避免分配“临时内存”并将结果直接存储到c[:, :]
中已经可用的内存中?我猜想我必须更加明确,使用c
之类的函数并为其提供对目标内存的引用。
答案 0 :(得分:3)
您要查找的操作是
import React, { Component } from 'react';
import { View, Animated, StyleSheet } from 'react-native';
export default class Deck extends Component {
renderCards(){
return this.props.data.map(item => {
return this.props.renderCard(item);
});
}
render() {
return (
<View>
{this.renderCards()}
</View>
);
}
}
对于numpy.add(a, b, out=c)
,对c[:, :] = a + b
的评估没有关于将结果分配给a + b
的事实的信息。它必须分配一个新数组来保存c[:, :]
的结果。
(NumPy的最新版本确实尝试执行一些C-level stack inspection来主动优化临时变量,超出了Python执行模型通常所允许的范围,但是这些优化无法处理这种情况。您可以在{{ 3}},其中包括有关它在什么平台上运行以及为何Python堆栈检查不够的一些说明。)