无法将输入数组从形状(3,1)转换为形状(3,) [英] Can't broadcast input array from shape (3,1) into shape (3,)

查看:75
本文介绍了无法将输入数组从形状(3,1)转换为形状(3,)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

import numpy as np

def qrhouse(A):
    (m,n) = A.shape
    R = A
    V = np.zeros((m,n))
    for k in range(0,min(m-1,n)):
        x = R[k:m,k]
        x.shape = (m-k,1)
        v = x + np.sin(x[0])*np.linalg.norm(x.T)*np.eye(m-k,1)
        V[k:m,k] = v
        R[k:m,k:n] = R[k:m,k:n]-(2*v)*(np.transpose(v)*R[k:m,k:n])/(np.transpose(v)*v)
    R = np.triu(R[0:n,0:n])     
    return V, R

A = np.array( [[1,1,2],[4,3,1],[1,6,6]] )
print qrhouse(A) 

这是qr因式分解代码,但我不知道为什么会发生错误. 值错误发生在V[k:m,k] = v

It's qr factorization code, but I don't know why error happens. The value error happens in V[k:m,k] = v

value error :
could not broadcast input array from shape (3,1) into shape (3) 

推荐答案

V[k:m,k] = v; v具有形状(3,1),但目标是(3,). k:m是3个词条; k是标量.

V[k:m,k] = v; v has shape (3,1), but the target is (3,). k:m is a 3 term slice; k is a scalar.

尝试使用v.ravel().或V[k:m,[k]].

还要了解为什么v具有其形状.

But also understand why v has its shape.

这篇关于无法将输入数组从形状(3,1)转换为形状(3,)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆