如何在Python中的数据数组上执行函数?
在MATLAB中,如果我编写自己的函数,我可以将一个数组传递给该函数,它会自动处理它。我正试图用Python(另一种数据科学语言)做同样的事情,但它没有处理它 有没有一种简单的方法可以做到这一点,而不必每次对数组中的所有值进行操作时都进行循环?那是更多的工作!似乎在Python中工作的伟大人物以前也会有类似的需求 我尝试将数据类型切换为如何在Python中的数据数组上执行函数?,python,arrays,Python,Arrays,在MATLAB中,如果我编写自己的函数,我可以将一个数组传递给该函数,它会自动处理它。我正试图用Python(另一种数据科学语言)做同样的事情,但它没有处理它 有没有一种简单的方法可以做到这一点,而不必每次对数组中的所有值进行操作时都进行循环?那是更多的工作!似乎在Python中工作的伟大人物以前也会有类似的需求 我尝试将数据类型切换为list(),因为这是可编辑的,但似乎不起作用。我仍然得到一个错误,基本上说它不需要数组对象 这是我的密码: import scipy from collecti
list()
,因为这是可编辑的,但似乎不起作用。我仍然得到一个错误,基本上说它不需要数组对象
这是我的密码:
import scipy
from collections import deque
import numpy as np
import os
from datetime import date, timedelta
def GetExcelData(filename,rowNum,titleCol):
csv = np.genfromtxt(filename, delimiter= ",")
Dates = deque(csv[rowNum,:])
if titleCol == True:
Dates.popleft()
return list(Dates)
def from_excel_ordinal(ordinal, _epoch=date(1900, 1, 1)):
if ordinal > 59: #the function stops working here when I pass my array
ordinal -= 1 # Excel leap year bug, 1900 is not a leap year!
return _epoch + timedelta(days=ordinal - 1) # epoch is day 1
os.chdir("C:/Users/blahblahblah")
filename = "SamplePandL.csv"
Dates = GetExcelData(filename,1,1)
Dates = from_excel_ordinal(Dates) #this is the call with an issue
print(Dates)
你们可以使用映射函数来实现
Dates = from_excel_ordinal(Dates)
将代码中的上述行替换为以下代码
Dates = list(map(from_excel_ordinal,Dates))
在上面的代码中,对于Dates中的每个值,将调用来自_excel _ordinal的函数。最后,它被转换成列表并存储到日期中。我认为你可能在寻找numpy的魔力。例如,您可以使用numpy.where.if语句执行该操作。如果您的列表是一维的,那么您可以尝试类似于map的内容(从excel开始,依次为日期)。它会将所述函数应用于每个元素。您可以使用map或lambda来执行相同的操作,因为map只需使用like Dates=list(map(从excel开始,依次为Dates))