[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001292] Re: initialize mathod



��߷�͡�

��Ƿ��Ǥ���

> ����������»�ͽ����򤹤� NArray �������Ȼפä��顢�Ѿ���Ĥ���
> ����NArray ���åԥ󥰤����⤢��ޤ����Ĥޤꡢ@xxxxxx �˲ä���
> ���Τ⡢�����ѿ��� NArray �Υ��֥������ȤȤ����ۤ˻��ġ����Τۤ�
> ����ʬ���䤹���������������ɤθ��̤����ɤ��ʤ�������Ȼפ��ޤ�
> ��ǡ���Ǥ��礦����Ȥ� NArray �Υ᥽�åɤΤ��������Τޤ޻Ȥ����
> �ΤˤĤ��Ƥϡ��Ѿ����ʤ��Ƥ⡢�ޤȤ�ƴ�ñ�ˡְѾ��פǤ��ޤ�����

�ͤ��Ƥߤ�ȡ��Ѿ��������ˤɤ�����з�»�ͽ����������Τ��狼
��ޤ��󡣤�Ȥ�� NArray �� mask ��Ƴ��������ä�������ʻ䤬�ѥ�
������ޤ����ˡ��ǡ����ȥޥ����������ѿ��ˤ�ķ�»�ͽ������饹
���뤳�Ȥ����ꤷ�Ƥޤ��������ʤߤˡ�������Υ��᡼���Ϥ���ʴ�
����

   a = NArrayMiss.new( nary, 'miss_val' => 999.0 )
   a = NArrayMiss.new( nary, 'valid_range' => [-1e33,1e33] )
   a = NArrayMiss.new( nary, 'valid_min' => -1e33 )
   a = NArrayMiss.new( nary, 'valid_max' => 1e33 )

   a = NArrayMiss.new( nary, mask )   # nary �� mask ��Ʊ������ NArray

�Ĥޤꡢ��Ȥ� NArray �ǡ���(��Ǥ�nary)�ȡ�������Ǥη�»�ͻ���
��Ϳ���ơ�����Ū�� @xxxxxx ���������ƻ��äƤ�������»�ͻ���Ͼ嵭
����������б��Ǥ���ɬ�פ�����ޤ���

�������ñ��黻�䣲��黻�ǤϷ�»�ͤ�褱�Ʊ黻���ޤ��������
���ǤϤ���ʴ�����

 def mlt(a, b)  # ���ȤDZ黻�� * �˳������
   mask = a.mask | b.mask
   ac,bc = b.coerce(a)
   data = ac.data.dup    # data ����ȤΥǡ����� dup �������֤��Ȥ���
   data[mask] = ac.data[mask] * bc.data[mask]
   NArrayMiss.new(data, mask)
 end

���������դ��٤��ϡ���»��ʬ�����äƤ����ͤ��礭���Ƥ⥪���С���
�������ʤ��褦����»��ʬ�ϱ黻���٤��ǤϤʤ��Ȥ������ȤǤ���

�ʤ�����»�ͤ������� NArray ���Ѵ�����᥽�åɤ�ɬ�פǤ�����
��ʴ�����

  nary = a.to_na( miss_val )
  nary, miss_val = a.to_na_set_miss

��»�ͤ� miss_val ���������� NArray ���֤�����Ԥϡ��ǡ������Ȥ�
�ͤ��ϰϤγ��ˡ��礭�����줿�Ȥ����ˤ˷�»�ͤ�ư���ꤷ����������
������֤���

���ȡ����»��ʬ�˴ؤ���ʿ����������褦��ɬ�פ�(������)�᥽��
�ɤ��Ѱդ��롣�ɤ��������Ȥ��ȸ����ȡ���»��̵�����ϡ�

  nary.sum(0) / nary.shape[0]

������1�����ܤ�ʿ�Ѥ����뤱�ɡ���»�������ʬ�������Ǥʤ���
�ǡ���»��ʬ�����ƿ�����������֤��᥽�åɤ�ɬ�פ��Ȥ������ȤǤ���
shape ������Ϻ��ޤ��̤�Ǥ���٤��ʤΤǡ��̤�̾����ɬ�ס��㤨��
count_valid �Ȥ����ˡ�

  a.sum(0) / a.count_valid(0)

���ȡ���»�Ǥʤ��Τ����㲿�Ĥʤ��Ȥ����ʤ��Ȥ������Ф�⡢�ߤ���
��ʤ��Ȥ����ʤ���

  a.sum(0) / a.count_valid(0, 'min_count' => 5)

���뤤�ϡ�

  a.sum(0, 'min_count' => 5) / a.count_valid(0)

��sum �� count_valid �ΰ����λ��ͤ�Ʊ���ˤ��롣����黻�Ǥ� mask 
�� "or" ����롼���ꡢ�������
    a.sum(0, 'min_count' => 5) / a.count_valid(0, 'min_count' => 5)
��Ʊ����

--
��Ƿ�� ��