我想连接一个包含不同元素大小的数组python作为用户输入不幸的是,它不能与用户输入工作,我得到了以下错误“值错误:零维数组无法连接”我不明白它是如何正常工作,但与用户输入不工作? import numpy as np
#lst_2=np.concatenate([[1],[2],np.repeat(3,3),[2]])
lst_2=input("PLEASE ENTER THE THING:: ")
print('OKKKKL',lst_2)
np.concatenate(lst_2)
我需要从C++向python函数传递一个numpy数组。代码如下。python方面:
import numpy as np
import convert as cv
def f(x):
x[0] = 5.
return len(x)
if __name__ == '__main__':
y = np.array([1., 2., 3., 4.])
x = cv.func_n(f, y)
print x
C++方面:
#include <iostream>
#include <boost/python.hpp>
using na
我想要创建一个numpy array,以便用numpy arrays填充它。例如:
a = [] (simple array or numpy array)
b = np.array([[5,3],[7,9],[3,8],[2,1]])
a = np.concatenate([a,b])
c = np.array([[1,2],[2,9],[3,0]])
a = np.concatenate([a,c])
我想这样做,因为我有wav文件,我从中提取一些特性,所以我不能同时从2个文件中读取,但可以迭代地读取。如何在二维固定的情况下创建一个空的ndarray,例如a.shape = (x,2),
我有这样的代码:
R = float(input("Enter the arc's radius of curvature: "))
H = float(input("Enter the arc's height: "))
import matplotlib.pyplot as plt
import numpy as np
import math
#cc = center of curvature
cc = math.sqrt(R**2 - (H / 2)**2)
x = np.linspace(-5,5,100)
y = m
我有一个代码在for循环两个numpy数组(data_transform)中生成我。在第一个循环中生成一个(40, 2)的numpy数组,在第二个循环中生成一个(175, 2)的numpy数组。我想把这两个数组连接成一个,给我一个(215, 2)数组。我尝试过使用np.concatenate和np.append,但是它给了我一个错误,因为数组必须是相同大小的。下面是我如何执行代码的一个示例:
result_arr = np.array([])
for label in labels_set:
data = [index for index, value in enumerate(la
在numpy中连接列或行的最佳方法是什么?
我知道numpy.append和numpy.vstack。
例如,我有3x5数组和3x5数组。
a = numpy.zeros((3,5))
b = numpy.ones((3,5))
如果我想将a和b连接成3x10数组,我会这样做。
a = numpy.hstack((a,b))
如果我想将a和b连接成6x5数组,我会这样做。
a = numpy.vstack((a,b))
是否有一个更有效的(更多的数组-ish)语法,如在R?
为了利用numpy.complex64存储数据的方式(连续的,交替的实数和虚数部分),我尝试对numpy进行子类化,但使用我自己的__add__,__sub__,...例程。
我的问题是,当我创建一个numpy.ndarray,设置dtype=mysubclass时,我得到了一个带有dtype='numpy.complex64'的numpy.ndarray,这导致numpy不使用我自己的函数进行加法和减法等操作。
示例:
import numpy as np
class mysubclass(np.complex64):
pass
a = mysubclass(1+1
Y, X = np.mgrid[-3:-3:10j, -3:3:10j]
我注意到,在上面这样的网格上应用某些操作时,我会得到一个错误,因为这些操作可能与numpy不兼容。有时,对于sin,可能有一个numpy函数,因为不是所有函数都可以替代,比如scipy.integrate中的quad函数。
我该如何解决这个问题?我需要对整个网格进行操作。
我如何堆叠形状(x,)的列式n向量,其中x可以是任何数字?
例如,
from numpy import *
a = ones((3,))
b = ones((2,))
c = vstack((a,b)) # <-- gives an error
c = vstack((a[:,newaxis],b[:,newaxis])) #<-- also gives an error
hstack运行良好,但在错误的维度上进行了连接。
我有一台numpy_array。就像[ a b c ]一样。
然后我想把它和另一个NumPy数组连接起来(就像我们创建一个列表列表一样)。如何创建包含NumPy数组的NumPy数组?
我试着做了下面的事情,但没有任何运气
>>> M = np.array([])
>>> M
array([], dtype=float64)
>>> M.append(a,axis=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module
我刚刚开始使用Numpy,并注意到遍历Numpy数组中的每个元素比使用列表列表进行迭代要慢大约4倍。我现在知道这违背了Numpy的目的,如果可能的话,我应该向量化这个函数。我的问题是为什么它的速度要慢4倍。这似乎是一个相当大的数额。
我使用%timeit运行了下面的测试
import numpy as np
b = np.eye(1000)
a = b.tolist()
%timeit b[100][100] #1000000 loops, best of 3: 692 ns per loop
%timeit a[100][100] #10000000 loops, best of 3: 7
我试图使用numpy循环一组坐标,并将这些坐标数组“堆叠”到另一个数组(因此本质上我希望有一个数组)。
这是我的尝试:
import numpy as np
all_coordinates = np.array([[]])
for y in range(2):
for x in range(2):
coordinate = np.array([[x,y]])
# append
all_coordinates = np.append(all_coordinates,[coordinate])
print(all_coordinates
我希望能够执行以下代码:
import numpy
z=numpy.zeros(4)
k="z[i-1]"
for i in range(len(b)):
z[i]=k
它应该返回与以下相同的输出:
z=numpy.zeros(4)
for i in range(6):
z[i]=z[i-1]
如果我执行第一个代码块,就会得到一个预期的错误消息:
File "<ipython-input-982-3ba4e617a74a>", line 1, in <module>
z[i]=(k)
ValueError:
我有四个形状的Numpy数组:
(2577, 42)
(2580, 100)
(2580, 236)
(2580, 8)
(2580, 37)
当我尝试连接它们时,除了(2577,42)之外,所有的都是这样做的。我得到一个错误:
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2580 and the array at index 4 has size 257
我很少有用于字符串操作的函数,但是除了python的内置程序(例如: spacy)之外,它们还涉及其他库。
分析我的代码告诉我,for循环花费的时间最多,我认为矢量化是解决这个问题的一种建议。
我问这个问题是作为我的探索的入门,因此不会在这里转储整个代码,而是,我将使用一个简单的字符串连接示例,我的问题是如何将它向量化。
文章很快解释了我的矢量化。然后我试着在字符串上实现它,但是性能却在恶化。
li = list(range(50000))
li = [str(i) for i in li]
nump_arr = np.char.array(li)
def python_for():
我正在尝试连接两个numpy数组以添加额外的列:array_1是(569, 30),array_2是(569, )
combined = np.concatenate((array_1, array_2), axis=1)
我想,如果我设置axis=2,让它垂直连接,这会起作用。结尾应该是一个569 x 31的数组。
我得到的错误是ValueError: all the input arrays must have same number of dimensions
有人能帮帮忙吗?
谢谢!