我有一个像这样的 numpy 数组: [1 2 2 0 0 1 3 5]
是否可以将元素的索引作为二维数组获取?例如,上述输入的答案是[[3 4], [0 5], [1 2], [6], [], [7]]
目前我必须循环不同的值并调用numpy.where(input == i)每个值,这在输入足够大的情况下性能很差。
我知道之前在下面的链接中已经回答了这个问题,但它不适用于我的情况。(Tensorflow - ValueError: Failed to convert a NumPy array to a Tensor (Unsupported object type float))
我的预测变量 (X) 和目标变量 (y)<class 'numpy.ndarray'>和它们的形状都是 X: (8981, 25) y: (8981, 1)
但是,我仍然收到错误消息。ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型浮点数)。
请参考以下代码:
import tensorflow as tf
ndim = X.shape[1]
model = tf.keras.models.Sequential()
# model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(36, activation = tf.nn.relu, input_dim=ndim))
model.add(tf.keras.layers.Dense(36, activation = tf.nn.relu))
model.add(tf.keras.layers.Dense(2, activation = tf.nn.softmax))
model.compile(optimizer = 'adam',
loss = 'sparse_categorical_crossentropy',
metrics = ['accuracy'])
model.fit(X.values, y, epochs = 5)
y_pred = model.predict([X_2019])
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!谢谢!!!
我正在尝试将用fftpack_rfft2d()(SciPy 的 FFTPACK RFFT)转换的两个二维数组相乘,结果与我从scipy_rfft2d()(SciPy 的 FFT RFFT)得到的结果不兼容。
下图共享了脚本的输出,其中显示:
scipy_rfft2d(),然后是乘法的输出,然后使用向后变换scipy_irfft2d();fftpack_rfft2d()和相同的事情fftpack_irfft2d();np.allclose()的结果检查两个乘法的结果在使用其各自的 IRFFT 实现转换回来后是否相同。
为了清楚起见,红色矩形显示逆变换 IRFFT 后的乘法结果:左侧的矩形使用 SciPy 的 FFT IRFFT;右边的矩形,SciPy 的 FFTPACK IRFFT。当与 FFTPACK 版本的乘法固定时,它们应该显示相同的数据。
我认为与 FFTPACK 版本的乘法结果不正确,因为scipy.fftpack返回结果 RFFT 数组中的实部和虚部与来自scipy.fft的 RFFT 不同:
如果我错了,请纠正我!我还想指出,由于scipy.fftpack不提供用于转换 2D 数组的函数,例如rfft2() …
我希望能够根据声音的音色(音调)对列表中的声音集合进行排序。这是一个玩具示例,其中我手动对我创建并上传到此存储库的 12 个声音文件的声谱图进行了排序。我知道这些已正确排序,因为每个文件生成的声音与之前文件中的声音完全相同,但添加了一个效果或过滤器。
例如,声音的正确排序x,y以及z
将会x, y, z

只需查看声谱图,我就可以看到一些视觉指示符,暗示应如何对声音进行排序,但我希望通过让计算机识别这些指示符来自动化排序过程。
上图中声音的声音文件
即使所有这些条件都不成立,我希望我的排序能够工作(但即使它不能解决这个问题,我也会接受最佳答案)
例如,在下图中
如果第一张图片中的 MFCC_8 和 MFCC_9 替换为下图中的 MFCC_8 和 MFCC_9,我希望声音的排序保持完全相同。

对于我的真实程序,我打算通过像这样的声音更改来分解 mp3 文件
这是生成本文中第一张图像的程序。我需要将函数中的代码sort_sound_files替换为一些实际上根据音色对声音文件进行排序的代码。需要完成的部分位于该存储库的底部附近和声音文件。我的jupyter 笔记本中也有这段代码,其中还包括第二个示例,该示例更类似于我实际希望该程序执行的操作
import librosa
import librosa.display
import matplotlib.pyplot as plt
import numpy as np
import math …Run Code Online (Sandbox Code Playgroud) 执行
import numpy as np
t1 = np.arange(1,10)
t2 = np.arange(11,20)
t3 = np.concatenate((t1,t2),axis=1)
Run Code Online (Sandbox Code Playgroud)
结果是
Traceback (most recent call last):
File "<ipython-input-264-85078aa26398>", line 1, in <module>
t3 = np.concatenate((t1,t2),axis=1)
IndexError: axis 1 out of bounds [0, 1)
Run Code Online (Sandbox Code Playgroud)
为什么报告轴1超出范围?
使用这个可重复的小例子,我到目前为止还无法从3个数组生成一个新的整数数组,这些数组包含所有三个输入数组的唯一分组.
这些数组与地形属性有关:
import numpy as np
asp = np.array([8,1,1,2,7,8,2,3,7,6,4,3,6,5,5,4]).reshape((4,4)) #aspect
slp = np.array([9,10,10,9,9,12,12,9,10,11,11,9,9,9,9,9]).reshape((4,4)) #slope
elv = np.array([13,14,14,13,14,15,16,14,14,15,16,14,13,14,14,13]).reshape((4,4)) #elevation
Run Code Online (Sandbox Code Playgroud)
我们的想法是使用GIS例程将地理轮廓分解为3个不同的属性:
下面的小图试图描绘我所追求的结果类型(数组显示在左下方).请注意,图中给出的"答案"只是一个可能的答案.只要最终数组在每个行/列索引处包含一个标识唯一分组的整数,我就不关心结果数组中整数的最终排列.
例如,[0,1]和[0,2]处的数组索引具有相同的方面,斜率和高程,因此在结果数组中接收相同的整数标识符.
是否numpy的有一个内置的例程这种事情?
我读通过numpy的文档,并且看起来功能np.prod(...),np.product(...)和ndarray方法a.prod(...)都是等效的.
在样式/可读性和性能方面是否有首选版本?是否存在不同版本更为可取的不同情况?如果没有,为什么有三种独立但非常相似的方式来执行相同的操作?
我对 numpy 的索引有点困惑。假设以下示例:
>>> import numpy as np
>>> x = np.arange(10)
>>> x.shape = (2,5)
>>> x
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> x[0:-1]
array([[0, 1, 2, 3, 4]])
>>> x[1:-1]
array([], shape=(0, 5), dtype=int64)
>>> x[1:]
array([[5, 6, 7, 8, 9]])
Run Code Online (Sandbox Code Playgroud)
我感到困惑的是,我可以使用x[0:-1]. 但-1就指数而言,实际上意味着什么?我会想,那个调用x[1:-1]会给我第二行,但是如果返回一个空数组,并且得到我想要的我需要使用 x[1:]?
我有点困惑。谢谢您的帮助
我尝试使用 numpy 和nptyping'sArray来做我的类型提示。
我尝试了以下方法:
enemy_hand: Array[float, 48] = np.zeros(48)
Run Code Online (Sandbox Code Playgroud)
我得到一个打字错误:
预期类型 'Array[float, Any]',改为 'ndarray'
据我了解:https: //pypi.org/project/nptyping/ 应该是这样的。
NumPy 1.20 中添加了对类型注释的支持。我试图弄清楚如何告诉 mypy 数组填充了特定类型的元素,注释np.ndarray[np.dcomplex]给出了 mypy error "ndarray" expects no type arguments, but 1 given。
编辑:这个问题与numpy.ndarray 的类型提示/注释(PEP 484)不同,因为这个问题是在 4 年前提出的,当时没有任何官方支持类型提示。我问的是什么是官方的 方法,现在numpy 1.20实际上支持类型提示。https://numpy.org/doc/stable/reference/typing.html#module-numpy.typing上的文档指出,那里的最佳答案似乎只说你不应该用类型提示做的事情,而不是解释什么你应该做的。
numpy-ndarray ×10
python ×8
numpy ×7
python-3.x ×3
scipy ×2
arrays ×1
audio ×1
fft ×1
fftpack ×1
index-error ×1
keras ×1
librosa ×1
mypy ×1
pycharm ×1
tensorflow ×1
type-hinting ×1