我想制作一个10列的表格。我还想在列0中找到具有最小值的行。
示例:
[[1,2,3]
[4,5,6,]
[7,8,9]
[10,11,21]]
如何到达列0的最小值的行? 我只需要一个可以使用列0的函数。 [1,2,3]
答案 0 :(得分:0)
该range
有一个内置函数。
Range不会创建列表,但是迭代器的行为与列表非常相似,并且应该对您足够(迭代器是“列表”,但仅在需要时才计算其项)。
所以:
a = range(10)
print(a) #-> range(0, 10)
for i in a:
print(a) #-> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
print(a[2]) #-> 2
print(a[0]) #-> 0
如果您不想从0开始,只需输入range(start_value, end_value)
。
如果要自定义增量,请使用range(start_value, end_value, increment)
(默认增量为1,但是如果要向后,则可以使用-1)。
要创建一个如您的示例的表,您可以使用以下小功能:
def ct(nStart, nEnd, nPerSubTable):
r = [] # Setup initial variable
subTable = []
for i in range(nStart, nEnd): # The main ranging
subTable.append(i)
if len(subTable) == nPerSubTable: # When the len of the sub table hit the requested one append to r and reset sub table
r.append(subTable)
subTable = []
if len(subTable) > 0: # If there is some left over because the last subtable is smaller than expected, add it any way
r.append(subTable)
return r
答案 1 :(得分:0)
使用numpy
arange
,我们可以轻松地创建一系列数字,然后将它们整形为2d数组:
In [70]: arr = np.arange(1,13).reshape(4,3)
In [71]: arr
Out[71]:
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
argmin
给出整个数组(展平)或按行或按列的最小值的索引:
In [72]: np.argmin(arr, axis=1)
Out[72]: array([0, 0, 0, 0])
第0列:
In [73]: arr[:,0]
Out[73]: array([ 1, 4, 7, 10])
In [74]: np.argmin(arr[:,0])
Out[74]: 0
pandas
是一张漂亮的桌子。
In [76]: import pandas as pd
In [77]: df = pd.DataFrame(arr)
In [78]: df
Out[78]:
0 1 2
0 1 2 3
1 4 5 6
2 7 8 9
3 10 11 12