我需要创建一个特定大小的零矩阵。然后,我需要将这个矩阵的每个元素写入一个文件中,这样每一行都在一个带有方括号()的单独行上。我还需要输出用科学符号表示,数据周围没有任何逗号或方括号。到目前为止,这就是我所拥有的:
groups = 2
null_array = np.zeros((groups,groups))
for i in range (groups):
f.write(" (")
for j in range (groups):
f.write(null_array(i,j))
f.write(" )\n")
我希望创建不同程度的稀疏矩阵。我打算将数据矩阵中所有非零的值转换为1,其余的条目将为0。
我能够使用下面的代码实现这一点。但我不知道如何才能在最后的矩阵中随机地将1变成0,并控制1的百分比。
例如:
the numpy.random.choice
numpy.random.randint(2,size = data_shape,p=0.75,0.25)
使我们能够创建控制1的百分比的矩阵。我如何在最终矩阵中以类似的方式控制1的百分比?
import numpy as np
import scipy.sparse as sp
import numpy.ma as ma
indptr =
我想使用向量NumPy矩阵和numpy.compress()方法来简化一个矩阵,首先遍历行,然后是列。现在我的代码如下所示:
n = 4 #number of rows/columns
square_matrix = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
u = np.array([1,0,1,0])
v = []
for i in range(n):
v.append(np.compress(u,square_matrix[i]))
print(v)
我得到以下输出:
[array([1, 3]),
我想将下面的组着色八度函数转换为python,并将其与pyplot一起使用。
功能输入:
x -数据矩阵(m )
a -a参数.
索引-大小为"m“的向量,其值在范围内:a
(例如,如果a= 4,索引可以是范围(M)中i的random.choice(范围(4))。
"index“中的值表示”m“第四个数据点所属的组的数目。该函数应该将x中的所有数据点绘制成不同的颜色(不同颜色的数目是"a")。
八度功能:
p = hsv(a); % This is a x 3 metrix
colors = p(index, :); % ****This is m x 3 me
我在另一个循环中嵌套了一个循环:
position={}
n=2
for i in range(n):
i=str(i)
for j in range(n):
j=str(j)
position[str(i+j)]= #whatever (in my case an object)
这样,字典的关键值就是来自矩阵的索引,我只需要调用position['11']就可以得到它。
是否有更好的方式加入i和j?并存储(并创建)类似矩阵的数据?
PS:我知道numpy库,但我还没有成功安装它.但这是另一个问题..。
我有一个矩阵M,它的值从0到N。我想展开这个矩阵来创建一个新的矩阵A,其中每个子矩阵A[i, :, :]表示M == i是否。
下面的解决方案使用一个循环。
# Example Setup
import numpy as np
np.random.seed(0)
N = 5
M = np.random.randint(0, N, size=(5,5))
# Solution with Loop
A = np.zeros((N, M.shape[0], M.shape[1]))
for i in range(N):
A[i, :, :] = M == i
这产生了:
M
array(
我想知道如何从numpy中的2D数组中删除第一行和最后一列。例如,假设我们有一个名为H的(N+1) x (N+1)矩阵,那么在MATLAB/Octave中,我使用的代码将是:
Hsub = H(2:N,2:N);
在Numpy中对应的代码是什么?我认为可能会做我想做的事情,但我不确定如何让它只删除目标行,因为我认为如果我重塑成一个(N-1) x (N-1)矩阵,它将删除最后两行和最后两列。
在数组中的数据替换过程中,我遇到了一个问题:比如说,
a = [1, 0, 0]
b = [0, 0, 0]
c = [0, 0]
X = numpy.zeros((3, 3, 2))
我有形状为(2,3,2)的矩阵Y,它不是零矩阵。
现在,我想用Y直接等于X的这些元素;
X[tuple(numpy.where(a==0)[0]),
tuple(numpy.where(b==0)[0]),
tuple(numpy.where(c==0)[0])] = Y
我得到了错误shape mismatch: objects cannot be broadcast to a single sha
使用numpy数组,我希望最经济地创建这样一个矩阵:
from numpy import array
a = array(a1,a2,a3,...,an)
b = array(b1,...,bm)
应按M矩阵处理:
M = array([[a1,a2,b1,...,an],
... ...,
[a1,a2,bm,...,an]]
我知道numpy阵列的广播方法,但我想不出一个好办法。任何帮助都是非常感谢的,
干杯,罗伯
我有一个由二进制值组成的numpy矩阵。我也有一个行索引列表。现在,我必须从矩阵中获取索引,其中特定列的值为1,并且索引必须包含在行索引列表中。执行此操作的有效方法是什么?我目前正在做的是: result = [index for index in np.where(dataset[:, col] == 1)[0] if index in indices]
我目前有175 x事件的地震数据,每个事件有3条痕迹(痕迹是非常规的地震数据阵列)。对于175个样本中的每个样本,我都有地震数据是否是地震的分类标签。我希望将数据格式化为numpy数组进行建模。我尝试过将每个列都是不同的跟踪放入numpy数组的数据帧中。所以列就是“追踪一”,“追踪二”,“追踪三”。这是行不通的。我尝试过很多不同的方法来安排数据与角点一起使用。我现在希望为数据创建一个numpy矩阵,然后用于建模。我曾想过这个形状可能是(175,3,7501)作为(#number of events, #number of traces,#number of samples in trace),
我目前正在尝试将多个Numpy数组追加到一起。基本上,我想做的是从一个(1xm)矩阵开始(从技术上讲是一个向量),最后得到一个(n X m)矩阵。因此,从n(1xm)矩阵(向量)到1 (n X m)矩阵(如果有任何意义的话)。这样做的最终目的是使用numpy.savetxt()函数将矩阵写入csv-file,这样我就得到了一个长度为m的n列的csv-file。
这样做的问题是,numpy.append()将向量添加到一个(1 X 2m)向量中。因此,假设a1和a2是Numpy数组,每个数组有10000个元素。我将使用append函数将a2附加到a1中,同时创建一个名为a的新数组,该数组同时包含