Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中的数据数组上执行函数?_Python_Arrays - Fatal编程技术网

如何在Python中的数据数组上执行函数?

如何在Python中的数据数组上执行函数?,python,arrays,Python,Arrays,在MATLAB中,如果我编写自己的函数,我可以将一个数组传递给该函数,它会自动处理它。我正试图用Python(另一种数据科学语言)做同样的事情,但它没有处理它 有没有一种简单的方法可以做到这一点,而不必每次对数组中的所有值进行操作时都进行循环?那是更多的工作!似乎在Python中工作的伟大人物以前也会有类似的需求 我尝试将数据类型切换为list(),因为这是可编辑的,但似乎不起作用。我仍然得到一个错误,基本上说它不需要数组对象 这是我的密码: import scipy from collecti

在MATLAB中,如果我编写自己的函数,我可以将一个数组传递给该函数,它会自动处理它。我正试图用Python(另一种数据科学语言)做同样的事情,但它没有处理它

有没有一种简单的方法可以做到这一点,而不必每次对数组中的所有值进行操作时都进行循环?那是更多的工作!似乎在Python中工作的伟大人物以前也会有类似的需求

我尝试将数据类型切换为
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))