我正在尝试获得一个二维数组,方法是随机生成它的行并将
import numpy as np
my_nums = np.array([])
for i in range(100):
x = np.random.rand(2, 1)
my_nums = np.append(my_nums, np.array(x))
但是我没有得到我想要的,而是得到了一个一维数组。
怎么啦?调换x也没有帮助。
我正在尝试将一个数字附加到二维numpy数组的特定行。我执行了以下操作,但它不能正常工作:
onspiketimes=np.array([[] for i in range(9)])
neurs = [3, 4, 8, 2]
onspiketimes[neurs]=2
>>> onspiketimes
array([], shape=(9, 0), dtype=float64)
正如你所看到的,没有附加任何东西,onspiketimes仍然是空的。但是,我可以使用列表列表执行此操作,如下所示:
>>> onspiketimes= [[] for i in r
我正在尝试将CSV数据集读取到一个二维numpy数组中,然后返回该数组。我仍然收到一个return none消息,并且不确定我解决这个问题的方法--我是numpy的新手。 明确地说,数据集包含两列和大约100行数据。我想创建一个数组,其中第一列数据是x坐标,第二列数据是y坐标。 import numpy as np
data = open("mydata.csv")
read = data.read()
def generatingArray(read):
for data in read:
dataPoints = np.array(read[
我想使用numpy.ix_为二维值空间生成多维索引。但是,我需要使用一个子索引来查找一维索引。例如,
assert subindex.shape == (ny, nx)
data = np.random.random(size=(ny,nx))
# Generator returning the index tuples
def get_idx(ny,nx,subindex):
for y in range(ny):
for x in range(nx):
yi = y # This
我有一个返回numpy.ndarray的函数。这个函数在循环中被调用。我希望在循环结束后访问所有的numpy.ndarrays,以便执行numpy操作。
伪码:
for x in something:
rects = method_that_returns_numpy_arrays()
#at this point I would like access to all the rects collected when the loop ends
我试着把它们列在清单上:
all_rects = []
for x in something:
rects = method_tha
情况如下:
我有一个二维的数字阵列。其形状为(1002,1004)。每个元素包含介于0和Inf之间的值。我现在要做的是确定前1000个最大值,并将相应的索引存储到一个名为x的列表中,以及一个名为y的列表中,这是因为我想绘制最大值,而这些索引实际上对应于这个值的实时x和y位置。
到目前为止,我得到的是:
x = numpy.zeros(500)
y = numpy.zeros(500)
for idx in range(500):
x[idx] = numpy.unravel_index(full.argmax(), full.shape)[0]
y[idx] = numpy.
我对快速和发展一点都不熟悉。我正在尝试创建cgfloat的二维数组,并为数组中的每个变量设置startAngle和endAngle的值,但是一旦我尝试运行它,就会得到错误的MSG。
不能用类型'()'‘的索引订阅'CGFloat’类型的值
// Create a path based on the center point, radius, and angles you just defined.
path = UIBezierPath(arcCenter: center,
radius: radius/2 - arcWidth
考虑下面这个简单的例子:
X = numpy.zeros([10, 4]) # 2D array
x = numpy.arange(0,10) # 1D array
X[:,0] = x # WORKS
X[:,0:1] = x # returns ERROR:
# ValueError: could not broadcast input array from shape (10) into shape (10,1)
X[:,0:1] = (x.reshape(-1, 1)) # WORKS
有人能解释为什么numpy有形状为(N,)而不是(N,1)的向量吗?从一维数组到二
我被要求在二维数组/矩阵(行、列)中试验numpy计算值,其中这些值依赖于相邻的值。我承认,这不仅仅是将矩阵与标量或诸如此类的矩阵相乘,即使它可能被简化为一系列这样的步骤。
尽管这是家庭作业,但我的问题所涉及的范围比仅仅向我提出解决办法的范围更广。
我已经阅读了广播,即向量化,在numpy,我可以想象一种方式是实现这作为一个新的ufunc,并运行它的矩阵。但是,对于我可能面临的限制,我有点担心--与当前迭代期间计算的元素相比,numpy ufunc可以访问相邻元素吗?概念上:
for x in columns:
for y in rows:
a[x, y] = a[x,
我想使用SVHN数据并尝试支持向量机。
testdata['X'] <type 'numpy.ndarray'>
(testdata['X']).shape is (32, 32, 3, 26032)
问题是支持向量机需要一个二维数组,而我的是4,这意味着我需要重塑它,我想。
我试过:
(testdata['X']).reshape(2)
给我:
ValueError: total size of new array must be unchanged
因此,我想知道如何使用嵌套的for循环填充2d Numpy数组。下面是我的代码片段:
import numpy as np
y=np.ones(6000).reshape(100,60)
x=1e-5*np.ones(6000).reshape(100,60)
L=60
r=3.9
eps=0.2
def logistic(n,i):
y[n,i]=r*x[n,i]*(1-x[n,i])
return y[n,i]
for n in range(99):
for i in range(L):
x[n+1,i] = (1-eps)*logistic
来自Matlab/Octave的背景,我一直在努力学习numpy。一件让我一次又一次地被绊倒的事情是向量和多维数组之间的区别。对于这个问题,我会给出一个具体的问题,但是如果有人也能解释一下numpy中一维数组背后的更一般的图片,为什么你首先想要它们,如何避免在混合单维数组和多维数组时遇到麻烦,等等,我会非常感激。总之,问题是:
我有一个叫做X的二维数组:
X = numpy.arange(10).reshape(2,5)
我想把X的最后一列存储成另一个二维数组(也就是一个列向量),叫做Y。我唯一能想到的方法是:
Y = numpy.atleast_2d(X[:,4]).T
但我不喜欢这样有几个
我有一个二维数组。我已经创建了两个嵌套循环来将数据追加到这个数组中,但是我得到了错误。错误是‘’numpy.float at64‘’对象没有‘append’属性。任何帮助克服这个错误的人都会很感激。 谢谢 arr1 = np.zeros((1000,4))
for j in range(0,4,1):
for i in range(0,1000,1):
x = rho * R * T # temperature changes for each iteration
arr1[i][j].append(x)
我在散点图上有很多数据--最终结果将有几百万点。在散点图上,这是太多了--我想把它转换成二维直方图,绘制等高线图,如这里所描述的。
这与我正在使用的代码相似,并且有同样的问题
import numpy
import matplotlib.pyplot as pyplot
def convert_edges_to_centres(edges):
centres = numpy.empty(len(edges)-1)
for i in range(len(centres)):
centres[i] = (edges[i+1] - edges[i])/2 + ed
考虑三个numpy数组。每个数字数组都是三维的。我们有数组X,数组Y,数组Z。所有这些数组都是相同的形状。将X、Y和Z的三个匹配元素在同一位置组合在一起,给出一个坐标。我有一个函数(不是python函数,数学函数),它必须运行在这些位置向量之一上,并将输出放置到另一个名为s的三维数组中。因此,如果数组定义如下:
X = [[[1,2],[3,4]] Y = [[[1,2],[3,4]] Z = [[[1,2],[3,4]]
[[5,6],[7,8]]] [[5,6],[7,8]]] [[5,6],[7,8]]]
然后要测
我有一个名为shape的(68x2)矩阵,我试图通过将shape的第0列和第1列放在数组B中来遍历所有68行。然后将其乘以(3x3)变换矩阵A。然后我的目的是创建一个单一的数组(这就是为什么我使用np.append),但实际上我得到的只是68个奇异的二维矩阵,我不知道为什么。
下面是我的代码:
import numpy as np
for row in shape:
B = np.array([[row[0]],[row[1]],[1]])
result = np.matmul(A,B)
result = np.append(result[0], result[1],
我希望将NumPy数组A:1、5和8的指定元素转换为0。
所以我做了以下几件事:
import numpy as np
A = np.array([[1,2,3,4,5],[6,7,8,9,10]])
bad_values = (A==1)|(A==5)|(A==8)
A[bad_values] = 0
print A
是的,我得到了预期的结果,即新数组。
然而,在我的实际问题中,给定的数组(A)非常大,而且也是二维的,而要转换为0的bad_values数量也太多了。因此,我尝试了以下方法:
bads = [1,5,8] # Suppose they are the values to