我想知道,如何numpy.array
正确保存和加载数据.目前我正在使用该numpy.savetxt()
方法.例如,如果我有一个数组markers
,看起来像这样:
我尝试通过以下方式保存它:
numpy.savetxt('markers.txt', markers)
Run Code Online (Sandbox Code Playgroud)
在其他脚本中,我尝试打开以前保存的文件:
markers = np.fromfile("markers.txt")
Run Code Online (Sandbox Code Playgroud)
这就是我得到的......
保存的数据首先如下所示:
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
Run Code Online (Sandbox Code Playgroud)
但是当我通过使用相同的方法保存刚加载的数据时,即.numpy.savetxt()
它看起来像这样:
1.398043286095131769e-76
1.398043286095288860e-76
1.396426376485745879e-76
1.398043286055061908e-76
1.398043286095288860e-76
1.182950697433698368e-76
1.398043275797188953e-76
1.398043286095288860e-76
1.210894289234927752e-99
1.398040649781712473e-76
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?PS我没有其他"后台"操作.只需保存和加载,这就是我得到的.先感谢您.
说,我有一个由10
元素组成的numpy数组,例如:
a = np.array([2, 23, 15, 7, 9, 11, 17, 19, 5, 3])
现在我想有效地设置所有a
值高于10
对0
,所以我会得到:
[2, 0, 0, 7, 9, 0, 0, 0, 5, 3]
因为我目前使用for
循环,这非常慢:
# Zero values below "threshold value".
def flat_values(sig, tv):
"""
:param sig: signal.
:param tv: threshold value.
:return:
"""
for i in np.arange(np.size(sig)):
if sig[i] < tv:
sig[i] = 0
return sig
Run Code Online (Sandbox Code Playgroud)
我怎样才能以最有效的方式实现这一目标,同时考虑到10^6
元素的大数组?
我有自己的协方差函数实现基于等式:
'''
Calculate the covariance coefficient between two variables.
'''
import numpy as np
X = np.array([171, 184, 210, 198, 166, 167])
Y = np.array([78, 77, 98, 110, 80, 69])
# Expected value function.
def E(X, P):
expectedValue = 0
for i in np.arange(0, np.size(X)):
expectedValue += X[i] * (P[i] / np.size(X))
return expectedValue
# Covariance coefficient function.
def covariance(X, Y):
'''
Calculate the product of the multiplication for each pair of variables
values.
'''
XY = X * Y …
Run Code Online (Sandbox Code Playgroud) 我试着表明:
...作为我的情节'x轴标签.为此我使用pylab.figtext()
函数,即:
py.figtext(0.5, 0.05, "$k=2,\left \langle \left | -k \right |;k \right \rangle,
k\in \mathbb{N}_{+}\cup\left \{ 0 \right \}$", rotation='horizontal', size='12')
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到错误:
ValueError:
$k=2,\left \langle \left | -k
ight |;k
ight
angle, k\in \mathbb{N}_{+}\cup\left \{ 0
ight \}$
^
Expected end of text (at char 0), (line:1, col:1)
Run Code Online (Sandbox Code Playgroud)
这是为什么?我想,我可以自由使用LaTeX.我应该如何在figtext()
方法中格式化我的文本以实现上述数学句子?先感谢您.
说,我有一个由三个余弦组成的示例信号,每个余弦代表 4、6 和 8 个频段。现在,我使用 FFT 将此信号放入频域,并在频域中切断不需要的 6 Hz 频带。最后,我想将信号从频域反转回时域。但是当我简单地使用时,numpy.fft.ifft
我得到了复数数组,这不是进一步分析信号的最佳结果。如何在执行带通后对 FFT 求逆,以便将实部和虚部携带的全部信息作为一个数字?我研究了z = sqrt(real^2 + imaginary^2)
事物,但它不是“事物”。
下面我提供一个工作示例。我会很感激你的帮助。
import numpy as np
from scipy.fftpack import fftfreq
# Define signal.
Fs = 128 # Sampling rate.
Ts = 1 / Fs # Sampling interval.
Time = np.arange(0, 10, Ts) # Time vector.
signal = np.cos(4*np.pi*Time) + np.cos(6*np.pi*Time) + np.cos(8*np.pi*Time)
def spectrum(sig, t):
"""
Represent given signal in frequency domain.
:param sig: signal.
:param t: time scale.
:return:
""" …
Run Code Online (Sandbox Code Playgroud) 在我理解Numpy.correlate()
函数实际如何工作的路上,我在纯Python中实现它,但我看到的是非常令人失望的:
def correlate(a, v, mode='valid', old_behavior=False):
mode = _mode_from_name(mode)
if old_behavior:
warnings.warn("""Warning.""", DeprecationWarning)
return multiarray.correlate(a, v, mode)
else:
return multiarray.correlate2(a, v, mode)
Run Code Online (Sandbox Code Playgroud)
所以我开始寻找multiarray.correlate2(a, v, mode)
函数的实现,但不幸的是我找不到它.我只是说,我正在寻找它,因为我试图自己实现自相关函数,并且我缺少类似于mode='full'
参数的功能Numpy.correlate()
,使得函数将结果作为一维数组返回.提前感谢您的帮助.
我尝试根据以下公式实现傅立叶级数函数:
...哪里...
...和...
这是我解决问题的方法:
import numpy as np
import pylab as py
# Define "x" range.
x = np.linspace(0, 10, 1000)
# Define "T", i.e functions' period.
T = 2
L = T / 2
# "f(x)" function definition.
def f(x):
return np.sin(np.pi * 1000 * x)
# "a" coefficient calculation.
def a(n, L, accuracy = 1000):
a, b = -L, L
dx = (b - a) / accuracy
integration = 0
for i in np.linspace(a, b, accuracy):
x = …
Run Code Online (Sandbox Code Playgroud) 我试图找到旋转LinearGradient
嵌套到Rectangle
对象中的对象的方法,比如说:
Rectangle rect = new Rectangle(0, 0, 200, 200);
LinearGradient lg = new LinearGradient(0, 0, 100, 0, false, CycleMethod.REPEAT, new Stop[] {
new Stop(0, Color.BLACK);
new Stop(0.5, Color.WHITE);
new Stop(1, Color.BLACK);
});
rect.setFill(lg);
Run Code Online (Sandbox Code Playgroud)
现在,我尝试旋转此lg
对象,例如向左旋转45度,但不旋转整个对象rect
.有没有办法实现这一目标?
说,我有一个数组:
import numpy as np
x = np.array([0, 1, 2, 5, 6, 7, 8, 8, 8, 10, 29, 32, 45])
Run Code Online (Sandbox Code Playgroud)
如何计算它的第三个标准偏差,所以我可以得到+3sigma
如下图所示的值?
通常情况下,我使用std = np.std(x)
,但说实话,我不知道它是否返回1sigma
值或可能2sigma
,或者其他什么.我非常感谢你的帮助.先感谢您.
我不确定这是否是提出此类问题的合适地方,但我有很多想法。我已通过 USB 将 Arduino Uno R3 板插入我的笔记本电脑,并尝试安装 Arduino 的驱动程序,但要做到这一点,我必须让它在我的Device Manager
. 这是一个问题,因为我没有看到任何可以作为我的 Arduino 板的东西。我什至没有一个Other Devices
类别,或者一个节点Unknown Device
。另外,Arduino的ON LED不亮。我有 Windows 7 家庭版。