различные типы данных в матрице

#python #arrays #numpy #matrix

#python #массивы #numpy #матрица

Вопрос:

У меня есть такая матрица:

 [[-0.96092685  1.16253848]
 [ 1.49414781  0.265738  ]
 [ 0.02689231 -1.09912591]
 ...
 [ 0.16677277  1.43807138]
 [-0.36808792 -0.03435113]
 [-0.3693595   0.44464701]]
 

и еще одна такая матрица:

 [-1  1 -1 -1 -1 -1 ...  1 -1  1 -1  1 -1 -1 -1  1  1 -1  1
 -1  1 -1  1  1 -1  1  1  1 -1  1 -1  1 -1 -1 -1]
 

теперь я хочу, чтобы top поместил последнюю матрицу в виде столбца в первой матрице, и я сделал:

 y=yL.reshape(len(yL),1)
data=np.concatenate((XL,y),axis=1)
 

но результат:

 [[-0.96092685  1.16253848 -1.        ]
 [ 1.49414781  0.265738    1.        ]
 [ 0.02689231 -1.09912591 -1.        ]
 ...
 [ 0.16677277  1.43807138 -1.        ]
 [-0.36808792 -0.03435113 -1.        ]
 [-0.3693595   0.44464701 -1.        ]]
 

но я хочу, чтобы 1 и -1 были int, а не float, как я могу это сделать?

Ответ №1:

Вы не можете. В numpy все элементы a np.array должны использовать один и тот же тип данных. Если вы хотите, чтобы столбцы имели разные типы данных, вам следует использовать Pandas .

Комментарии:

1. спасибо, но если я напишу свою матрицу таким образом, у меня может быть другой тип данных: dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]]

2. @MementoMori: это не массив numpy, а простой список Python. Это совершенно разные животные!