小编Tin*_*tin的帖子

如何从多个向量构造一个 numpy 数组,其数据按 id 对齐

我正在使用Pythonnumpyscikit-learn。我有存储在 SQL 表中的值的数据。我将其作为元组列表检索为:[(id, value),...]。每个 id 在列表中只出现一次,元组按 id 升序排列。这个过程完成了几次,所以我有多个key: value对的列表。这样:

dataset = []
for sample in samples:
    listOfTuplePairs = getDataFromSQL(sample)    # get a [(id, value),...] list
    dataset.append(listOfTuplePairs)
Run Code Online (Sandbox Code Playgroud)

密钥可能在不同的样本中重复,并且每一行的长度可能不同。一个例子dataset可能是:

dataset = [[(1, 0.13), (2, 2.05)],
           [(2, 0.23), (4, 7.35), (5, 5.60)],
           [(2, 0.61), (3, 4.45)]]
Run Code Online (Sandbox Code Playgroud)

可以看出,每一行都是一个样本,并且一些id(在本例中为2)出现在多个样本中。

问题:我希望构建一个适合用 scikit-learn 处理的单个(可能是稀疏的)numpy 数组。与每个样本的特定键 (id) 相关的值应在同一“列”中对齐(如果这是正确的术语),以便上述示例的矩阵如下所示:

    ids =     1    2     3      4    5
          ------------------------------
dataset = [(0.13, …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning scikit-learn

2
推荐指数
1
解决办法
602
查看次数

将参数传递给 Django REST 框架序列化程序以与模型一起使用

我有一个Object带有state日期时间参数的方法的类dt。如何将日期时间参数从 URL 传递到Object.state()

该模型:

class Object(models.Model):
    def state(self, dt=datetime.datetime.now()) -> dict:
        ...stuff...
        return {'dt': dt, 'other_stuff': stuff}
Run Code Online (Sandbox Code Playgroud)

风景:

class ObjectDetail(generics.RetrieveAPIView):
    queryset = models.Object.objects.all()
    serializer_class = serializers.ObjectSerializer

    def get_serializer_context(self):
        return {'dt': self.request.query_params.get('dt', datetime.datetime.now())}

    def get(self, request, *args, **kwargs):
        return self.retrieve(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

和序列化器类:

class ObjectSerializer(serializers.HyperlinkedModelSerializer):
    state = StateSerializer(read_only=True, context={'dt': self.context['dt']})

    class Meta:
        model = models.Object
        fields = ('state')

class StateSerializer(serializers.Serializer):
    dt = serializers.DateTimeField()
    ... other stuff...
Run Code Online (Sandbox Code Playgroud)

如您所见,我试图在视图中较早设置上下文dt的行state = StateSerializer(read_only=True, context={'dt': …

django django-serializer django-rest-framework

1
推荐指数
1
解决办法
5345
查看次数

如何仅在 React 属性更改时调用函数?

我希望alert()每次在 React 中跟踪的 Meteor 订阅withTracker更改时都显示一个模式对话框(例如)。

我试过使用 Tracker.autorun来跟踪更改,但无法确定在代码中放置它的位置。它似乎在Component构造函数中不起作用,如果放在render().

这是我的代码的概述:

class Foo extends Component {
    render() {
        return (
            <h1>Example Header</h1>
            { this.maybeShowAlert() }
        );
    }

    maybeShowAlert() {
       // ONLY if bar has been updated
       alert('bar has changed');
    }
}

export default withTracker(() => {

    Meteor.subscribe('bar')

    return {
        bar: Bar.findOne({})
    };
})(Foo);


Run Code Online (Sandbox Code Playgroud)

meteor reactjs meteor-tracker meteor-react

1
推荐指数
1
解决办法
1771
查看次数