python - 在 Python 中创建一个带有变量定义的字符串(nympy.arange 对象)

标签 python arrays string numpy

我正在编写一个Python脚本,我想生成一个带有变量定义的字符串,该变量是一个numpy数组。我希望将其写入外部文件或屏幕,而不是打印/写入整个数组。

为了说清楚,我有:

import numpy as np
normalization = np.arange(4, 11, 0.1)

我想获得:

normalization_string = 'np.arange(4, 11, 0.1)'

无需手动编写,但当然可以指定从变量标准化生成字符串。

有没有一种简单的方法来生成该字符串?

最佳答案

通常你不能,因为变量根本不知道(因为变量不关心)它是如何创建的。

例如,在您的情况下 np.arange 只是一个函数。它返回一个np.ndarray,但是有多种方法可以创建numpy.ndarray:

>>> import numpy as np
>>> np.arange(4, 5, 0.1)
array([ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9])

>>> np.arange(40, 50) / 10.
array([ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9])

>>> np.array(range(40, 50, 1)) / 10.
array([ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9])

>>> np.linspace(4, 4.9, 10)
array([ 4. ,  4.1,  4.2,  4.3,  4.4,  4.5,  4.6,  4.7,  4.8,  4.9])

它们都创建相同的数组。


我的建议:

只需保护运行之间发生变化的参数,例如,如果您想修改“步骤”:

step = 0.1

arr = np.arange(4, 11, step)
# do something with arr

res = ... # the result

# safe only the "step" and "res".
print('np.arange(4, 11, {})'.format(step))  # creating a string

如果开始、停止和步骤不同:

start = 4
stop = 11
step = 0.1

arr = np.arange(start, stop, step)
# do something with arr

res = ... # the result

# safe "start", "stop", "step" and "res".
print('np.arange({}, {}, {})'.format(start, stop, step))  # or create the string

我添加了 print 主要是因为您明确要求提供字符串表示形式。

关于python - 在 Python 中创建一个带有变量定义的字符串(nympy.arange 对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44484895/

相关文章:

python - 如何生成在向量的数字之间添加 + 和 - 的所有可能性,因此总和应该是正数,使用回溯

c++ - 删除数组c++崩溃问题

c - 在字符串文字上使用 strdup 的优点和缺点

c++ - `std::string` 是否在内部将其字符存储为签名字符?

python - numpy.linalg.solve 和 numpy.linalg.lu_solve 之间的区别

python - 在Python中插入缺失值

python - Pandas,分组依据最大返回 AssertionError :

javascript - 如何将 jQuery UI 可排序元素与数组链接?

C++ 指针和数组

python - 如何查找和替换文本文件中的多行?