如何在python中将[1, 2, 3]
转换为[[1],[2],[3]]
?
另外,假设我有一个长度为m的向量,其值介于1到10之间,我想创建一个大小为mx10的矩阵,这样就知道如果向量y = 1
那么矩阵应该是[0,1,0,0,0,0,0,0,0,0]
。在八度音程中,有可能,
y_train = zeros(m,output_layer_size);
for i=1:output_layer_size
y_train(find(y==i),i)=1;
end
但是类似的函数在python中发出VisibleDeprecationWarning
警告并且确实提供了所需的输出
y_train = np.zeros((y.shape[0],10))
for i in range(10):
y_train[y==i][i]=1
答案 0 :(得分:1)
在numpy中向矢量添加尺寸很容易。您有多种选择,具体取决于您的目标:
在索引中使用None
通常为v = v[:, None]
设置别名的np.newaxis
,:
v = [None, :]
OR
newaxis
使用v = v.reshape((1, -1))
可以精确控制矢量是一列还是一行。
重塑矢量:
v = np.reshape(v, (-1, 1))
OR
-1
我在这里确实展示了四个选项(np.reshape
vs np.ndarray.reshape
和行与列)。在新向量的维度中使用np.newaxis
意味着"为了使其与原始"具有相同数量的元素所需的任何大小。它比明确使用形状容易得多。
使用np.expand_dims
,它几乎完全等同于v = np.array(v, copy=False, ndmin=2)
,但功能形式。
使用ndmin=2
构建新数组:
y_train = np.zeros((y.size, m_output));
y_train[np.arange(y.size), y] = 1
此方法灵活性最小,因为它不允许您控制新轴的位置。它通常用于唯一重要的是维度,广播负责其余的事情。
问题的第二部分似乎是Python中花式索引的简单用例。这是IDEOne link,我在那里展开你的八度循环。您可以在Python中将其改写为:
<?php
session_start();
if(isset($_SESSION['user_name'])!='') {
header('Location: index.php');
}
include_once 'init.php';
//check if form is submitted
if (isset($_POST['login'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$records = $conn->prepare("SELECT username,email,number,password FROM users WHERE ( username='$email' OR email = '$email' OR number = '$email')");
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$message = '';
if(count($results) > 0 && password_verify($password, $results['password']) ){
$gome = $results['username'];$_SESSION['user_name'] = $gome;
$CookieExpire = 1000;
$time = 100 * 70 * 48 * 86400;
$time = time() + $time;
setcookie('username', '$gome', '$time');
setcookie('password', '$password', '$time');header("Location: /");
} else {
$message = 'Sorry, those credentials do not match';
}
}
?>
以下是演示的IDEOne link。
答案 1 :(得分:-3)
评论中的那些对我不起作用,但是numpy.where()有效!
line_free