代码:
import numpy as np
data = '12345\n54321\n13542\n12354\n53124'
n = data.find('\n')
mat = np.array(list(data.replace('\n','')), dtype=np.uint8).reshape(-1, n)
mat
字符串
输出:
array([[1, 2, 3, 4, 5],
[5, 4, 3, 2, 1],
[1, 3, 5, 4, 2],
[1, 2, 3, 5, 4],
[5, 3, 1, 2, 4]], dtype=uint8)
型
代码:
mat2 = np.full_like(mat, 0)
mat2[0,0] = 9999999
mat2[0,1] = 8888
mat2[0,2] = 77777
型
输出:
array([[127, 184, 209, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0]], dtype=uint8)
型
因此,Python并没有设置所需的numpy数组项值,只是保存了一个随机的小值,而不是一个大范围的数字大小。如何解决这个问题?
1条答案
按热度按时间bakd9h0s1#
分享这一点,因为我不知道一段时间发生了什么,即使它似乎是如此清晰,如果你看一个小的例子这样的第一眼。在一个较大的代码,这样的事情可以隐藏一段时间。
你需要将数据类型从uint 8(--> unsigned int,8 Bit是你可以为数组选择的最小值,这就是为什么我首先选择它来保存一些小值)更改为可以保存较大值的数据类型。例如:
字符串
输出:
型