python - 有人可以解释这个 Numpy 数组属性叫什么吗?
问题描述
我的代码如下:
import numpy as np
z = np.array([
[1, 2],
[3]
])
x = np.array([
[4, 5]
])
print(np.multiply(x,z))
该程序的输出创建了一个列表列表。这与应用于具有相同维度的数组的常规广播规则不同。这个属性有名字吗?另外为什么它在输出中明确提到单词列表?
[[list([1, 2, 1, 2, 1, 2, 1, 2]) list([3, 3, 3, 3, 3])]]
[Finished in 0.244s]
解决方案
这只是正常的逐细胞增殖。因为您的z
数组不是真正的矩阵(它没有正方形),Numpy 将其解释为包含两个对象的行:
>>> z
array([[1, 2], [3]], dtype=object)
>>> z.shape
(2,)
从这里你可以正常乘法 - 第一个对象乘以 4,第二个对象乘以 5:
>>> [1, 2]*4
[1, 2, 1, 2, 1, 2, 1, 2]
>>> [3]*5
[3, 3, 3, 3, 3]
只是普通的 Python 列表乘法 - 这是你得到的结果。实际上,您的结果不是“列表列表”。(1, 2)
它是一个形状为的数组dtype=object
,因此是一行两个对象(恰好是列表):
>>> np.multiply(x,z)
array([[[1, 2, 1, 2, 1, 2, 1, 2], [3, 3, 3, 3, 3]]], dtype=object)
>>> np.multiply(x,z).shape
(1, 2)
推荐阅读
- c# - 使用子级别查询 EF linq 进行过滤
- spring-mvc - 找不到 Spring Security 4.1.5 注销 URI 404
- lamar - 如何在 Lamar 5 的 Use(ctx =>{}) 工厂函数中获取请求的类型?
- sql - SQL 舍入到 2 个数字之间的最接近值
- python - KivyMD DatePicker 保存多个日期
- php - 将语言标识符 ['en', 'fr',...] 分配给 HMVC Codeigniter 4 项目的所有 URI 段 1
- c# - 如何对 IEnumerable 中的项目求和?
- php - 带有 PHP 服务器的 PayPal JavaScript SDK?
- typescript - 我可以通过不带问号的特殊类型将 TypeScript 函数中的参数标记为可选吗?
- html - 如何在css中扩展边框宽度?