我得到了一些我无法解释的效率测试结果.
我想组装一个矩阵B,其第i个条目B [i,:,:] = A [i,:,:].dot(x),其中每个A [i,:,:]是一个2D矩阵, x也是如此.
我可以这三种方式来测试性能我做的随机(numpy.random.randn
)矩阵A =(10,1000,1000),x =(1000,1200).我得到以下时间结果:
(1)单个多维点积
B = A.dot(x)
total time: 102.361 s
Run Code Online (Sandbox Code Playgroud)
(2)循环通过i并执行2D点积
# initialize B = np.zeros([dim1, dim2, dim3])
for i in range(A.shape[0]):
B[i,:,:] = A[i,:,:].dot(x)
total time: 0.826 s
Run Code Online (Sandbox Code Playgroud)
(3)numpy.einsum
B3 = np.einsum("ijk, kl -> ijl", A, x)
total time: 8.289 s
Run Code Online (Sandbox Code Playgroud)
因此,选项(2)是迄今为止最快的.但是,仅考虑(1)和(2),我看不出它们之间的巨大差异.如何循环和做2D点产品的速度要快124倍?他们都使用numpy.dot.任何见解?
我在下面包含了用于上述结果的代码:
import numpy as np
import numpy.random as npr
import time
dim1, dim2, dim3 = 10, 1000, 1200
A = npr.randn(dim1, dim2, dim2)
x = npr.randn(dim2, …
Run Code Online (Sandbox Code Playgroud) 作为构建,发布和部署工程师,有多种类型的发行版,如下所示:
想知道它们之间的区别和意义.
我在Woocommerce版本3+中创建了一个可变产品("父"产品).从Wordpress插件,我想以编程方式创建具有新属性值的产品变体("儿童"产品).
变体属性已在Woocommerce中设置.
因此,每次创建一个变体时,新属性的值也应该以编程方式创建,并在父变量产品中设置.
如何才能做到这一点?可能吗?
更新:我已经编写了更多我想要的代码行,并尝试了很多东西来解决它,使用woocommerce对象,并使用wordpress数据库在数据库中添加关于术语,termmeta,术语与post的关系的缺失数据对象 - 但没有什么能够让它发挥作用.我无法确定错误的地方 - 这就是为什么我无法提供更窄的问题 - 堆栈流更多的事情.
我需要帮助.我正在尝试以编程方式更新woocommerce产品库存数量.我们通过一些JSON向我们提供了供应商.我可以从Feed中读取库存,并且可以正确地从post meta中提取数据.我正在使用WP和WOO的最新版本.PHP是7.2
以下是我如何从SKU中找到产品ID.
$product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
Run Code Online (Sandbox Code Playgroud)
这将返回正确的ID,我可以使用它来查看已存在的当前元数据:
$website_stock = get_post_meta($product_id, '_stock', true);
echo "Website Stock - " . $website_stock . "</br>";
$website_stock_status = get_post_meta($product_id, '_stock_status', true);
echo "Website Stock Status - " . $website_stock_status . "</br>";
Run Code Online (Sandbox Code Playgroud)
然后我更新了我从Feed中获得的库存.这可以是从零到x或x到零以及介于两者之间的任何地方.这是我更新缺货的方式:
$out_of_stock_staus = 'outofstock';
update_post_meta($product_id, '_stock', 0);
update_post_meta($product_id, '_stock_status', wc_clean( $out_of_stock_staus ));
wc_delete_product_transients( $product_id ); // Clear/refresh the variation cache
Run Code Online (Sandbox Code Playgroud)
这是它变得奇怪的地方.
数据在管理面板的产品视图中正确显示.作为旁注,这个SKU可以属于一个变体(我们有很多),或者它可能是一个简单的产品.最后,他们似乎都更新了.我没有看到错误.
我在我的functions.php中使用了一个小小的PHP片段,它在下拉列表中显示缺货项目.这里是:
/* Grey out out of stock …
Run Code Online (Sandbox Code Playgroud) 可能重复:
内部联接vs其中
今天我和我的项目经理就Cartesian产品进行了辩论.他说'自然连接'比使用'select from where'要好得多,因为后者会导致db引擎在内部执行笛卡尔积,但前者使用另一种方法来阻止这种情况.据我所知,自然连接语法在性能或含义方面与"从哪里选择"没有任何不同,我的意思是你可以根据自己的喜好使用.
SELECT * FROM table1,table2 WHERE table1.id=table2.id
SELECT * FROM table1 NATURAL JOIN table2
Run Code Online (Sandbox Code Playgroud)
请详细说明导致笛卡尔积的第一个查询,但第二个查询更加智能
iPhone应用程序是否允许用户从应用程序内部购买实体产品(比如笔或鼠标),而无需在应用程序中购买Apple?
是苹果允许的吗?
如果是,您是否知道任何支持此功能的API?
谢谢AJ
iphone shopping-cart product payment-gateway in-app-purchase
我目前正在编写一个脚本,让我可以在magento中导入多个产品.
$product = Mage::getModel('catalog/product');
$product->setSku($data['sku']);
//etc etc
$product->save();
Run Code Online (Sandbox Code Playgroud)
产品创建完美但它不会出现在我的前端,直到我将它保存在后端(没有更改任何东西!)或者我在后端重建索引.
我在相关数据库表上做了一个差异,看看当我保存产品并将这些字段添加到我的导入脚本时会发生什么变化,但它没有任何效果.导入的产品必须正常,因为当我通过后端手动重建索引时它会显示出来.
缓存完全禁用.
现在我的问题是:如何在导入我的产品后重建索引?
让我们说我加载我的产品对象:
$product = Mage::getModel('catalog/product')->load($productId);
Run Code Online (Sandbox Code Playgroud)
是否有功能或某种方法来提取与此产品相关的捆绑ID?
例如
$product->getBundledProductIDs()
Run Code Online (Sandbox Code Playgroud) 在下图中,它显示了折扣价格和百分比
我发现没有具有此功能的自定义代码搜索.
我使用下面的代码显示折扣价,但价格没有格式化(货币符号和小数缺失):
add_filter( 'woocommerce_get_price_html', 'modify_woocommerce_get_price_html', 10, 2 );
function modify_woocommerce_get_price_html( $price, $product ) {
if( $product->is_on_sale() && ! is_admin() )
return $price . sprintf( __('<p class="saved-sale">Save: %s</p>', 'woocommerce' ), $product->regular_price - $product->sale_price );
else
return $price;
}
Run Code Online (Sandbox Code Playgroud)
如何显示正确的格式折扣价?如何显示折扣百分比?
任何帮助都是适用的.