在numpy中很容易从np.array([2.7])
检索2.7
,但在尝试从这样的数组np.array(2.7)
中检索值2.7
时会遇到问题。
如何从中检索值def get(a):
......
?
更具体地说,我需要一个功能
get(np.array(2.7))=2.7
以便 [HttpPost]
public async Task<IActionResult> Register (RegisterViewModel model)
{
try
{
var userStore = new UserStore<ApplicationUser>(db);
var userManager = new UserManager<ApplicationUser>(userStore);
var user = new ApplicationUser { UserName = model.Email };
IdentityResult result = await userManager.CreateAsync(user, model.Password);
return RedirectToAction(nameof(HomeController.Index), "Home");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return View();
}
}
。有什么想法吗?
答案 0 :(得分:4)
In [1]: import numpy
In [2]: a = numpy.array(2.7)
In [3]: a[()]
Out[3]: 2.7000000000000002
你可能想要考虑一下为什么你甚至有一个0维数组。它们有点奇怪,如果0D数组上的操作产生标量或数组,它可能有点挑剔。
(你看到的额外...02
因为2.7在浮点中不能完全表示,索引数组会为你提供NumPy标量而不是Python标量,而NumPy的显示逻辑与Python略有不同。)
答案 1 :(得分:0)
np.array(2.7)
是一个零维数组。你不能索引它们:
>>> arr = np.array(2.7)
>>> arr[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: 0-d arrays can't be indexed
对于大多数实际用途,您可以像使用常规浮点数或整数一样使用这些数组。
>>> arr*2
5.4000000000000004
>>> arr+1
3.7000000000000002
>>> float(arr)
2.7
回应你的评论:
它是0维的直觉是什么?
嗯,您可以看到它的一个示例是访问数组的shape
属性。
>>> arr.shape
()
>>> np.array([2.7]).shape
(1,)