小编Cyr*_*lle的帖子

FFT实/虚/ abs部分解释

我目前正在学习离散傅里叶变换,我正在玩numpy来更好地理解它.

我试图绘制一个"sin x sin x sin"信号并获得一个带有4个非零点的干净FFT.我天真地告诉自己:"好吧,如果我用这些幅度和频率绘制一个"罪恶+罪恶+罪恶+罪恶"信号,我应该获得相同的"罪x x sin x sin"信号,对吧?

嗯...不完全是

(首先是"x"信号,第二个是"+"信号)

在此输入图像描述

两者共享相同的幅度/频率,但不是相同的信号,即使我可以看到它们有一些相似之处.

好的,因为我只绘制了FFT的绝对值,我想我丢失了一些信息.

然后我绘制了两个信号的实部,虚部和绝对值:

在此输入图像描述

现在,我很困惑.我该怎么办?我从数学的角度阅读有关DFT的内容.我知道复杂的价值来自单位圈.我甚至不得不了解希尔伯特的空间,以了解它是如何工作的(这很痛苦!......而且我只是划伤了表面).我只想了解这些真实/想象的情节是否在数学世界之外具有任何具体含义:

  • abs(fft):频率+幅度
  • 真实的(fft):?
  • 虚构(fft):?

代码:

import numpy as np
import matplotlib.pyplot as plt
N = 512 # Sample count
fs = 128 # Sampling rate
st = 1.0 / fs # Sample time
t = np.arange(N) * st # Time vector

signal1 = \
1   *np.cos(2*np.pi * t) *\
2   *np.cos(2*np.pi * 4*t) *\
0.5 *np.cos(2*np.pi * 0.5*t)

signal2 = \
0.25*np.sin(2*np.pi * …
Run Code Online (Sandbox Code Playgroud)

signal-processing numpy fft complex-numbers dft

12
推荐指数
2
解决办法
2万
查看次数

遵循SVN中的符号链接

我有一个linux目录(并且不需要任何Windows结帐):

/home/me/projects/project1
Run Code Online (Sandbox Code Playgroud)

在这个项目中,我需要SVN(1.8.8)来跟踪符号链接"link1":

/home/me/projects/project1/link1/<some_directories_and_files>
Run Code Online (Sandbox Code Playgroud)

但是SVN不会让我这样做,它只是添加link1而不是它的内容.如果我尝试添加其内容,我会收到错误消息:

svn add link1/*
svn: E145001: Can't schedule an addition of '/home/me/projects/project1/link1/first_directory' below a not-directory node
Run Code Online (Sandbox Code Playgroud)

我尝试将link1转换为硬链接,但我也不能这样做:

ln /path/to/my/linked/directory link1
ln: ‘/path/to/my/linked/directory’: hard link not allowed for directory
Run Code Online (Sandbox Code Playgroud)

任何的想法?你如何处理这种配置?我只需/home/me/projects/project1要从一个简单的提交一切svn commit

linux svn symlink ln symlink-traversal

10
推荐指数
1
解决办法
2969
查看次数

在空的 Pandas DataFrame 中插入单元格

我需要在一个空的 Pandas Dataframe 中存储一些值。类似的东西:

      | col1  col2  col3
------------------------
row1  |  v1    v2    v3
row2  |  v4    v5    v6
row3  |  v7    v8    v9
Run Code Online (Sandbox Code Playgroud)

我从其他来源获取单元格ex: (row2, col3, v6),但我事先不知道我将拥有多少行和多少列。

我试图以这种方式填充我的 DataFrame,但它不起作用:

import pandas as pd

df = pd.DataFrame()

df["col1"] = ""
df["col2"] = ""
df["col3"] = ""

df["col1"].loc["row1"] = "v1"
df["col2"].loc["row2"] = "v4"
df["col3"].loc["row3"] = "v9"
# ...
Run Code Online (Sandbox Code Playgroud)

当我想显示 DataFrame 时,

print(df)
Run Code Online (Sandbox Code Playgroud)

它显示为一个空的 DataFrame。

Empty DataFrame
Columns: [col1, col2, col3]
Index: []
Run Code Online (Sandbox Code Playgroud)

出于好奇,我尝试了

print(df["col1"])
Run Code Online (Sandbox Code Playgroud)

我得到:

row1    v1
row2    v4 …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

5
推荐指数
1
解决办法
2267
查看次数

为搅拌机安装 numpy

我很难将搅拌机模型导出为 glTF 2.0 格式(用于 godot):

在此输入图像描述

(我仍然可以将其导出为默认的 .dae 格式)

因此,我尝试为所有 python3 版本(python3、python3.6、python3.9)安装 numpy:

python<versions> -m pip install numpy
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

重新启动搅拌机后,我仍然有此消息。

我尝试使用 Blender 集成的 python (3.9) shell 来安装 numpy,但没有更多的运气:

在此输入图像描述

现在我该怎么做?

在此输入图像描述

python linux numpy pip blender

5
推荐指数
2
解决办法
7862
查看次数

如何防止子进程在某些参数之间添加空格?

我想使用 Python 及其subprocess模块从 Linux 执行一些 Mysql 命令。

没有 Python,从 shell 中,我的命令行是:

mysql --database=mydb --host=localhost --port=3306 --password=  --execute="select * from mytable" --batch
Run Code Online (Sandbox Code Playgroud)

使用 Python,我有:

cmd = ['mysql']
cmd.extend(['--database=', self._database])
cmd.extend(['--password=', self._password])
cmd.extend(['--execute=', query])

(...)

p = subprocess.Popen(cmd, shell = False, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, err = p.communicate()
errcode = p.returncode
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用(mysql 只是打印用法),我认为,子进程会生成这种输出(' '.join(cmd)):

mysql --database= mydb --host= localhost --port= 3306 --password=  --execute= "select * from mytable" --batch
Run Code Online (Sandbox Code Playgroud)

IE。每个参数之间添加空格,分隔=和值。 …

python subprocess python-2.7

2
推荐指数
1
解决办法
1140
查看次数