我需要创建一个长度为n的NumPy数组,每个元素的长度为v.

还有什么比这更好的吗?

a = empty(n)
for i in range(n):
    a[i] = v

我知道zerosones在v=0,1的情况下可以用,我可以用v * ones(n),但是当vNone不起作用,而且会慢得多.

推荐答案

NumPy版本1.8引入了np.full(),这是一种比empty()后跟fill()更直接的方法,用于创建填充了某个值的数组:

>>> np.full((3, 5), 7)
array([[ 7.,  7.,  7.,  7.,  7.],
       [ 7.,  7.,  7.,  7.,  7.],
       [ 7.,  7.,  7.,  7.,  7.]])

>>> np.full((3, 5), 7, dtype=int)
array([[7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7],
       [7, 7, 7, 7, 7]])

这可以说是创建填充了特定值的数组的the种方式,因为它显式地描述了正在实现的内容(而且原则上它可以非常高效,因为它执行非常具体的任务).

Python相关问答推荐

具有多个选项的计数_匹配

Polars LazyFrame在收集后未返回指定的模式顺序

运行Python脚本时,用作命令行参数的SON文本

从dict的列中分钟

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

Odoo 16使用NTFS使字段只读

driver. find_element无法通过class_name找到元素'""

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

numpy.unique如何消除重复列?

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

在numpy数组中寻找楼梯状 struct

Pandas 数据帧中的枚举,不能在枚举列上执行GROUP BY吗?

仅使用预先计算的排序获取排序元素

如何在Gekko中处理跨矢量优化

当输入是字典时,`pandas. concat`如何工作?

为什么Visual Studio Code说我的代码在使用Pandas concat函数后无法访问?

正在try 让Python读取特定的CSV文件

Django更新视图未更新

Pandas:根据相邻行之间的差异过滤数据帧

如何从具有完整层次数据的Pandas框架生成图形?