我写了下面的代码:
import numpy as np
n_rows = int(input("Enter number of rows:"))
n_columns = int(input("Enter number of columns:"))
print("Enter 2D array values---")
matrix = []
for i in range(n_rows):
a=[]
for j in range(n_columns):
a.append(int(input()))
matrix.append(a)
arr=np.array(matrix)
arr
如果我输入以下值,将给予以下输出:
array([[1, 2, 3],
[4, 5, 6]])
但我希望矩阵的第一行作为字符串值输入,如:
["John","Alex","Smith"]
和矩阵的第2行作为整数值,如:
[50,60,70]
然后我想得到以下输出:
Name: John , Marks: 50
Name: Alex , Marks: 60
Name: Smith, Marks: 70
2条答案
按热度按时间xv8emn3q1#
Numpy要求矩阵中的所有值都是相同的类型。这是由于它如何在数组中搜索项(有关更多信息,请查看
strides
)。因此,如果希望数组中包含文本数据,则必须将整个数组的类型更改为支持字符串的类型。
另一种方法是用一个数组来存储名字,用一个单独的数组来存储值。另外,你可以使用
pandas.DataFrame
,因为它是你问题的直接解决方案。lc8prwob2#
列表列表:
只需调用
np.array
就可以生成一个包含字符串的数组,即最小的公共dtype:我们也可以指定
object
,但这样的数组实际上与原始列表相同:该列表的“转置”:
它可以用来制造一个
structured array
,它的复合dtype是:或 Dataframe :