ar = np.array([[0, 0, 1, 1], [0, 1, 0, 1], [1, 3, 5, 7]]).T
n = int(np.sqrt(ar.shape[0])) # Assuming you have a square matrix
out = np.empty([n, n]) # Create a new array of the expected shape
row_idx = ar[:, 0]
col_idx = ar[:, 1]
out[row_idx, col_idx] = ar[:, 2] # Put the data into the indexed locations
可以使用numpy advanced indexing将值放置在空的实例化数组中。下面是一个示例,假设第三列实际上是数值的,值为
[1, 3, 5, 7]
,并且矩阵是正方形(如果不是正方形,则可以更改空矩阵的形状,只要可以获得尺寸)返回:
如果第三列实际上是一个字符串,那么它就有点复杂了,因为在实例化numpy数组时必须指定要处理的字符串的大小,并且还要将索引片从
object
转换回int
编辑:字符串数据的附加信息。 如果您实际上试图将字符串放入numpy数组,则需要使用unicode字符串
dtype='U1'
kwarg到np.empty
声明所需字符串的大小,其中U
之后的数字是字符数组的长度返回:
相关问题 更多 >
编程相关推荐