我想知道如何从numpy中的2D数组中删除第一行和最后一列。例如,假设我们有一个名为H的(N+1) x (N+1)矩阵,那么在MATLAB/Octave中,我使用的代码将是:
Hsub = H(2:N,2:N);
在Numpy中对应的代码是什么?我认为可能会做我想做的事情,但我不确定如何让它只删除目标行,因为我认为如果我重塑成一个(N-1) x (N-1)矩阵,它将删除最后两行和最后两列。
你好,我有一个叫做tfidf2的矩阵,这个矩阵的形状是( 11159,1985年),它有11159行和1985年的列,我想把一个新的矩阵连接到这个矩阵,这个矩阵叫做datesNumpy,它的形状是(11159,12),它们有相同的行数,所以可以连接它,新矩阵的形状应该是tfidf3 (11159,1997年),
import numpy as np
tfidf2 = tdf.transform(list_cluster)
print("Shape tfidf2",tfidf2.shape)
listAux=[]
for l in listMonth:
listA
我在机器学习编码方面是新的,在Tensorflow编码方面完全是新的。
我正面临着使用Tensorflow索引的问题。在使用numpy的简单python中,这是相当容易的,但是在Tensorflow库中,我不知道如何制作它。
我不想在示例的每个类中应用softmax函数,而只在每一行的两个随机类中应用,并在特定索引(以前的随机类)的大矩阵(最初为零)中返回这些值。numpy中的算法更简单,因为可以使用简单的索引,但是在tensorflow中,我认为它是这样的:
给出了矩阵X:(NxD)、矩阵W:(KxD)和两个随机数在0到K-1之间的阵列rem_cl
S is an empty matrix
我有两个矩阵A,B,NxKxD维,我想得到矩阵C,NxKxDxD维数,其中Cn,k= An,k,k.T (这里"x“表示维数Dx1和1xD的矩阵的乘积,所以结果必须是DxD维数),所以现在我的代码看起来如下(这里A=B= X):
def square(X):
out = np.zeros((N, K, D, D))
for n in range(N):
for k in range(K):
out[n, k] = np.dot(X[n, k, :, np.newaxis], X[n, k, np.newaxis, :])
在numpy和tensorflow中,如果较小矩阵的形状是较大矩阵的后缀,则可以添加不同维数的矩阵(或张量)。这是一个示例:
x = np.ndarray(shape=(10, 7, 5), dtype = float)
y = np.ndarray(shape=(7, 5), dtype = float)
对于这两个矩阵,运算x+y是以下操作的快捷方式:
for a in range(10):
for b in range(7):
for b in range(5):
result[a,b,c] = x[a,b,c] + y[b,c]
然而,在
我使用它来迭代numpy矩阵的列:
import numpy as np
A = np.random.randn(4,3)
for c in A.T:
print c.shape # (4L,) => not a real column
c = np.array(c, ndmin=2).T
print c.shape # (4L, 1L) => OK
是否有更好的方法来迭代列,避免循环中的重新定义和双transpose**:** ( double )
for c in A.T:
c = np.array(c, ndmin=2).T
注:我已经
假设我有一个(c x d)矩阵的列表。比如说我有a。我对每个矩阵都有a系数。
在NumPy中是否有一种快速的方法,在保持张量数据结构的情况下,立即将每个矩阵乘以其系数,还是需要手动遍历一个for循环,即X = np.array([np.multiply(coefs[i], X[i]) for i in range(len(coefs))])。
即X.shape = (3, 4, 5),coefs.shape = (3).
from numpy import matrix
new = matrix([raw_input("enter element in matrix. . ")]) # add element from user
在c矩阵中从用户获取行和行大小如何使用numpy输入nxn矩阵
matrix([for i in row: for j in col: raw_input(add >data)])
我有2个2d的numpy数组,A的形状(i,j)和B (i,k),其中j >> k。我想定义一个新的三维数组C,使得C中的每个元素都是A中每个列与整个矩阵B的广播元素的乘积。换句话说,作为一个正常的python循环,我会这样做。
for x in range(j):
C[x] = A[:,x]*B
但是,在这种情况下,j是非常大的,如果我能够使用Numpy的功能来定义ndarray C元素,就像在上面的循环中那样,我将受益良多。
谢谢你的帮助
from numpy import linalg
from numpy import matmul
M = [[2,1],[1,3]]
b = [[3],[-1]
Mb = []
nrows = 2
ncols = 2
for i in range(0,nrows):
sum = 0
for j in range(0,ncols):
sum = sum + M[i,j] * b[j]
Mb[?] = ?
print(Mb)
#这样做的目的是用一个循环来乘矩阵。在尝试运行时,我一直得到错误(python列表索引必须是整数而不是元组)。我
我正在寻找简单的稀疏向量实现,可以映射到内存中,类似于numpy.memmap。
不幸的是,numpy实现只处理全向量。示例用法:
vec = SparseVector('/tmp/file.dat') # SparseVector is the class I'm looking for
vec[10] = 10
vec[50] = 21
for key in vec:
print vec[key] # 10, 21
我创建了表示稀疏矩阵的scipy类,但是2维使用起来很笨拙,因为我需要制作只有一行的矩阵,然后使用vec[0,i]。
有什么建议吗?
我有一个n-by-3-by-3 numpy数组A和一个nby3 numpy数组B.现在,我想用相应的标量乘以n 3-by-3矩阵的每一行,即,
import numpy as np
A = np.random.rand(10, 3, 3)
B = np.random.rand(10, 3)
for a, b in zip(A, B):
a = (a.T * b).T
print(a)
在没有循环的情况下,能做到这一点吗?
我有一些代码,它在输入数据矩阵上执行各种处理功能。输入数据可以是2、3或4D。
我需要从输入数据中删除n-1维矩阵进行处理,然后另一个矩阵接收这个处理过的数据。为了处理不同大小的输入数据,最好的方法是什么。
例如,目前我有以下形式的代码:
import numpy as np
if number_dims == 2:
output_matrix = np.zeros([size_dim1,final_size_dim2])
for i in range(0,dim1,1):
data_to_process = input_data[i,:]
output_ma
我是Python的新手,目前正在编写一段代码,我想在其中存储一个3维矩阵的以前的迭代,它的一个版本是在for循环的每个步骤中创建的。我想要做的是连接一个新的维数为3+1=4的数组,该数组存储以前的值。现在,这可以通过连接来实现,我让它像这样工作:
import numpy as np
matrix = np.ones((1,lay,row,col), dtype=np.float32)
for n in range(100):
if n == 0:
# initialize the storage matrix
matrix_stored = mat
我正在尝试提取我在数据库中的多个图像的描述符。所使用的方法给出了每个图像的关键点矩阵和描述符矩阵,所以我想将它们分组成一个单矩阵。
我试过一个循环:
kp_all = numpy.hstack((kp_all, kp))
des_all = numpy.hstack((des_all, des))
其中kp_all和des_all被正确初始化,因为它是第一个图像的描述符,所以我想将其他描述符连接到该矩阵中。给出的错误是:
ValueError: all the input array dimensions except for the concatenation
axis must matc
我有一个,从它加载原始矩阵。
文本文件有注释和#,它基本上有多个矩阵77*44。
我想阅读这个文件,并从这个完整数量的垫子中存储每个矩阵。
import os
import sys
import numpy as np
from numpy import zeros, newaxis
import io
#read the txt file and store all vaules into a np.array
f = open('/path/to/akiyo_cif.txt','r')
x = np.loadtxt(f,dtype=np.uint8,com