【发布时间】:2018-09-25 14:13:57
【问题描述】:
我有一个数字列表,需要转换为 45 x 45 数组中的浮点数。
gauss_matrix = [list of 2025 float numbers]
mat_template = np.zeros([45, 45])
for rows in np.arange(45):
for columns in np.arange(45):
mat_template[rows, columns] = float(gauss_matrix[np.arange(2025)])
这是否从第 0 行开始,遍历第 0-44 列。然后从第 2 行开始,遍历第 0-44 列等等?
已解决的代码:(感谢您的帮助!)
with open('gaussfilter.csv', 'r+') as gauss: # Let's me read and write gaussfilter.csv
GaussFilterData = gauss.readlines() # Reads the lines of the csv file
# print("GaussFilterData: \n", GaussFilterData)
GaussList = [] # Empty list which will be used to append values to from the csv file
# print("GaussList 1: \n", GaussMatrix)
for lines in GaussFilterData: # Loops through each row of data in gaussfilter.csv
# print("lines: \n", lines)
for row in np.arange(45): # Looping through each row and splitting up the list by commas, while converting each value to a float and not a string
GaussList.append(float(lines.split(',')[row])) # Appending each row to GaussList
# print("\nGaussList 2: \n", GaussList)
# Making the array of values from GaussList
gauss = np.zeros([45, 45]) # Matrix of zeros, the zeros are placeholders for the values in GaussList
# print("gauss: \n", gauss)
Counter = -1 # Counter has to start at -1 so that it begins at 0 when referring to row 0 and column 0
for rows in np.arange(45): # Loop through rows 0 - 44
for columns in np.arange(45): # As we are looping through row 0, loop through all 45 columns
Counter = Counter + 1 # Counter keeps track of the number of cells in the matrix (2025)
gauss[rows][columns] = GaussList[Counter]
print("gauss array: \n", gauss)
【问题讨论】:
-
你试过了吗?你可以打印出来看看。
-
你可以写
arr = np.array(list)或arr = np.array([1.5, 2.5, 3.5]) -
arr = np.array(lst)怎么样?请不要在类后命名变量。 -
您是否将
np.array/np.ndarray上的一维索引与二维索引混淆了? -
@smci
np.array函数返回一个 ndarray,因此您的评论读起来相当混乱。
标签: python arrays numpy indexing