让<form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}">
{% csrf_token %}
{% bootstrap_form form %}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<br>
<button type="submit" class="btn btn-primary btn-block">Sign Up</button>
</form>
成为一个数组,其中每个元素都是列索引(小于r
,N
的大小为r
)且M
为P
x M
数组。
以下两个代码段的行为不同。为什么呢?
1
N
2
P[:, r] += 1
答案 0 :(得分:3)
第一个为r
的每个元素选择一个完整列。第二个只是一个元素。您可以直接比较两种情况:
>>> P = np.arange(12).reshape(4, 3)
>>> r = np.random.randint(0, 3, (4,))
>>> r
array([1, 1, 2, 0])
>>>
>>> P[:, r]
array([[ 1, 1, 2, 0],
[ 4, 4, 5, 3],
[ 7, 7, 8, 6],
[10, 10, 11, 9]])
>>> P[np.arange(4), r]
array([1, 4, 8, 9])
正如你所看到的那样,第二个基本上产生了第一个的对角线。
您可以从查看部分&#34;结合高级和基本索引&#34;中获益。在numpy docs。
答案 1 :(得分:1)
P[:, r]
选择整个第一个轴(:
就像0:-1
这里)和r
- 第二个轴。
P[i, r[i]]
仅选择i
第一个轴和r[i]
- 第二个轴,它只是一个元素。
一旦明确了,两个人给出不同的结果就不足为奇了。