python �ł̍s��E�x�N�g�����l�v�Z

python �ōs��x�N�g�����Z���”\�ł��B�ł��A���ۂɍs��x�N�g���v�Z�����悤�Ƃ����Ƃ��˘f�킳��܂����Bpython �ł̍s��x�N�g�����Z�ɂ‚��Ď荠�ȉ��������܂���ł����B�R�[�h����w�ǂȂ��A���s����Ŏg���K�v������܂����B��蓹�����܂����B���� Matrix �� array �̎g�������Ɍ˘f���܂����B���_�́u�����܂ł� Matrix ���g�킸�� array �͈̔͂����Ŏg���Ƃ��B�v�ł��B���ꂽ��ł� Matrix ���g�������b�g�͌����܂��Barray �����ōς܂����ق����]���Ȃ��Ƃ��l�����ɍς݂܂��B

���̂悤�ȉ��������邱�ƂȂ� python �ł̐��l�v�Z�������葁���n�߂���悤�ɂ悤�ɁA���� Web page �������܂����BC ����␔�l�v�Z�ɂ‚��Ă̑f�{�͂��邪 python �͎g���n�߂̕��A���}�ɍs�� �x�N�g�����Z���s���K�v���������ΏۂɁApython �ōs��E�x�N�g�����Z���Ă��Ƃ葁���g�����Ȃ����߂̉�����s���܂��B

numarray �� Numeric

python �̐��`���Z���W���[���ɂ� Numeric �� numarray �̓�‚��������Ă��܂��B���҂̋@�\�͖w�Ǔ����ł��Bnumarray �̂ق��� Numeric �����V�������W���[���ł��B�ł��A����I�Ȏg�����������Ȃ����[�U�[�ɂƂ��ẮA�卷����܂���B�ǂ���ł��\���܂���B�Ⴆ�� Numeric �ł͕��������_���Z���I�[�o�[�E�t���[�����Ƃ��Ȃ� NaN(Not a Number ���Ӗ����܂��B) �Ȃǂ��o�͂����Ă��܂����B����� numarray �ł́A��O�𓊂��邩�ȂNJ�‚��̑I������������悤�ɐi�������Ă��܂��B

�V���� numarray ���g���Ηǂ��Ƃ�����܂���Bvtk �� mayavi �Ȃǂ̃��W���[�����Â� Numeric ���g���Ă��āA�܂��V���� numarray �ɐ؂�ւ���Ă��Ȃ����߂ł��B���݂ł����������s���Ďg���Ă��܂��B����������A�ǂ�����_�E�����[�h�ł��܂��B

�����������ɃE�����[�h���Ȃ��ł��������B�A�܂� python ���C���X�g�[�����Ă��Ȃ����A�܂� python ���g������łȂ����� numarray �� Numeric �𒼐ڃC���X�g�[������̂ł͂Ȃ��A���ɏq�ׂ� Enthought �p�b�P�[�W���g���A���̉��p���W���[�����܂߈�x�ɓZ�߂ăC���X�g�[�����邱�Ƃ����߂܂��B

python�^���l���Z�p�b�P�[�W�ƃC���X�g�[��

python �̓p�b�P�[�W�Ƃ��Ă��z�z����Ă��܂��Bpython �͑����̊J���҂ɂ���đ��l�ȕ���̃��C�u�������J������Ă��܂��B�����̃��W���[���Ƌ��Ƀ\�t�g���Y���~�ς��ꑱ���Ă��܂��B�ł��A���̊������͈������Ƃ������N�����܂��B�����̊J���҂��݂��Ɋ֘A���������W���[����Ɨ����ĊJ�����Ă��邽�߁A���݂̃��W���[�����p�[�W�����ɂ���Đ���ɓ��삷��ۏ؂����Ȃ��Ȃ��Ă��܂��B�����ŁA����畡���̃A�v���P�[�V�����E���W���[���̐�������ۂ����p�b�P�[�W�Ƃ��� python �p�b�P�[�W������z�z����Ă��܂��B

�����g�� Enthought �Ђ̃p�b�P�[�W���g���Ă��܂��Bpython �� 2.3 �̌Â��o�[�W�����ɂȂ��Ă��܂��̂ł����A���̃A�v���P�[�V�����Q���ꊇ���ăC���X�g�[���ł����y����D�悵�Ă��܂��B

�Ƃ��ɉȊw�Z�p����̐��l�v�Z�� ScyPy �̕������𗧂��܂��B���̐��l�v�Z�p�b�P�[�W�Z�߂ē���ł���̂͂��肪�����͂��ł��B

fft
����֐�
Matlab �݊��v���b�g�p�b�P�[�W
���v�����p�b�P�[�W
�ϕ�
������������\���o�[
Lapack ���`���Z

Ehthought �̃p�b�P�[�W���傫������Ǝv�����́A��������g���� SciPy �p�b�P�[�W�������C���X�g�[�����邱�Ƃ����肾�Ǝv���܂��B�����炩������ł��� SciPy Tutrorial �����ł����l������܂��Bpython �ł̉Ȋw�Z�p�v�Z�� 42 page �ɗv�̂悭�܂Ƃ߂��Ă��܂��B

scipy �� tutorial �͗ǂ��ł��Ă��܂����A�s�񉉎Z�ɂ‚��ẮAmat(Matrix �ɓ���) �𒆐S�ɏ����Ă���f�킳��܂����Bmat �� Matrix �� array ���b�p�[�E�C���^�[�t�F�[�X������� array �̂܂܍s��x�N�g���������ׂ��ł��B

numarray �̃C���X�g�[��

Enthought �Ђ̃p�b�P�[�W�� python ���C���X�g�[������ƁA�Â� Nemeric ���C���X�g�[������Ă��܂��܂��B�V���� numarray �̓C���X�g�[������܂���B

���� numarray ���g���Ă��� python �R�[�h���g�����߂ɂ��Anumarray ���C���X�g�[�����Ă����܂��傤�B����������_�E�����[�h���Ēlj��C���X�g�[�����܂��傤�BNumeric �� numarray �̗������C���X�g�[�����Ă��A���݂��Ďg��Ȃ�����͖����N���Ȃ��悤�ł��B

array

numarray/Numeric �� array �^���g����悤�ɂ��郂�W���[���ł��Bpython �ł̐��`���Z�̂��߂� tuple, list �Ƃ͕ʂ� array �f�[�^�[�^�� numarray/Numeric �Œlj�����܂����Bnumarray/Numeric �ł� Fortran �ŊJ�����ꂽ���`���Z�p�b�P�[�W Lapack �� python �ɈڐA���Ă��܂����A����� array �^�̃f�[�^��Ώۂɂ��Ă��܂��B

tuple / array / Matrix / list

python �ł̍s��x�N�g���v�Z�̂��߂ɂ́Atuple / array / Matrix / list �Ɨǂ������f�[�^�^�̈Ⴂ�𗝉����g�������邱�Ƃ��K�v�ƂȂ�܂��B���̎l�‚̃f�[�^�^�̊֌W�� �����Đ}������Ǝ��̂悤�ɂȂ�܂�

 tuple ��        �� list
          array
           ��
          Matrix

list �� tuple ���܂��܂��Barray �� tuple �� list �̒��Ԃɂ���܂��B���Ԃƌ����Ă��u�������ꂽ���ԁv�ł��Barray �͍s���x�N�g���Ƃ�������Ȑ��l�̏W�܂�������I�ɏ������邽�߂ɐ݂���ꂽ�f�[�^�^�ł��BC �Ȃǂ̔z��Ɠ��l�ɁA���l�f�[�^��A�������������u���b�N�ɔz�u���܂��Btuple �� list ���Q�Ƃ�v�f�Ƃ���̂ɑ΂� array �͐��l���̂�v�f�Ƃ���̂Łu�������ꂽ���ԁv�ƕ\�����܂����B

Matrx �� array ���p���������b�p�[�E�N���X�ł��B *, ** ���Z�q���I�[�o�[���[�h����Ă��܂��B�s��ǂ�����s��ƃx�N�^�̐ς� * ���Z�q�ŏ�����悤�ɂȂ�܂��B�s��̃}�C�i�X���܂� �ׂ���� ** ���Z�q�ŋL�q�ł���悤�ɂȂ�܂��B

Enthought/SciPy �p�b�P�[�W�ł́A����� Matrix �� mat �Ń��b�v���܂��Bmat �� Matrix �Ƃ̈Ⴂ�͗ǂ�������܂���Bmat �R���X�g���N�^�� Matrix �R���X�g���N�^���Ăяo���Ă��܂��B���� Matrix �Ɩw�Ǔ������Ɛ������Ă��܂��B

�ł��AMatrix �� array �ɒlj�����`�Ő݂���ꂽ�N���X�ł��BLapack �̈ڐA�� Matrix �ł͂Ȃ� array �ɑ΂��čs���Ă��܂��B���̌��� Matrix �� lapack �̐��`�㐔�� array �֐��Ƃ̐��������s���S�ł��BMatrix �C���X�^���X�� lapack �֐��𓭂������ array �ɕς�����肵�܂��BMatrix �� + - * ** ���Z�q�͈̔͂ł݂̂̌v�Z�Ɍ����Ďg�����̂̂悤�ł��B

�ŏ��� Matrix �^�̎g�p�������ׂ��ł��BPython �ł̐��`�㐔�����̗��������������邾���ł��BMatrix �^�̎g�p�� python �ł̐��`�㐔�����̑S�̂����n����悤�ɂȂ�܂ōT����ׂ��ł��BMatrix �^���g���ɂ��Ă��A���̗p�r�����肵�Ďg���ׂ��ł��B

array �^���g�����R

array �͑��ʂ̐��l���������߂̌^�ł��Blapack ��list �ɈڐA���邱�Ƃ��ł���Ƃ͎v���܂����Alist �͔ėp�I�߂��A�����Ȑ��l�v�Z�ɓK���܂���B���l��p�̃R���e�i�^ array �𓱓������ق����A���l�v�Z�v���O�����������I�Ɏ����ł��܂��B

tuple array list �f�[�^�̃������z�u

tuple,list,array �̈Ⴂ���A�������ɔz�u����Ă���f�[�^�̎��_���猩�Ă݂܂��傤�B

tuple �͎Q�Ƃ����񂾂��̂ł��Btuple �̓��������ŎQ�ƃ|�C���^��A�����Ĕz�u���邱�ƂŎ�������Ă��܂��B

��������������������������              �������������������������� 
���Q�Ƅ��Q�Ƅ��Q�Ƅ��Q�Ƅ�  �E�E�E�E�E�E���Q�Ƅ��Q�Ƅ��Q�Ƅ��Q�Ƅ� 
��������������������������              �������������������������� 
  ��    ��    ��    ��                    ��    ��    ��    ��     

list �́A�Q�Ƃ� list pointer �̃y�A�������N���ꂽ���̂ł��Btuple �Ɠ��l�� list �v�f�ɂ͈قȂ����^�̃C���X�^���X�����݂������܂��B��������Ƀ|�C���^����Ĕ�є�тɃ����N�z�u������̂ŁA�r���ւ̑}���▕�� sort �Ȃǂ��”\�ł��B�ł� tuple ���͕��G�ȏ������K�v�ƂȂ�܂��B�x���Ȃ�܂��B

        �� �� list pointer
������������  ������������               ������������  ������������
���Q�Ƅ����������Q�Ƅ������� ........... ���Q�Ƅ����������Q�Ƅ�������
������������  ������������               ������������  ������������
  ��            ��                         ��            ��

array �̓�������ɐ��l�𒼐ڕ��ׂ����̂ł��B�����͍����ɂȂ�܂����A����/����/���f���ȂǃT�C�Y�̈قȂ�v�f�����݂������܂���B

��������������������������              �������������������������� 
�����l�����l�����l�����l��  �E�E�E�E�E�E�����l�����l�����l�����l�� 
��������������������������              �������������������������� 
//@@
from numarray import *
#from Numeric import *
mtAt  = array([ [1,2],
                [3,5] ])

mtAt2  = array([[1,2],        
                [3,4, 5] ])
//@@@

# numarray �̃G���[
Traceback (most recent call last):
  File "temp.py", line 5, in ?
    mtAt2  = array([ [1,2],
  File "C:\lng\Python\Lib\site-packages\numarray\numarraycore.py", line 395, in array
    return fromlist(sequence,type,shape)
  File "C:\lng\Python\Lib\site-packages\numarray\numarraycore.py", line 258, in fromlist
    arr.fromlist(seq)
ValueError: Nested sequences with different lengths.

# Numeric �̃G���[
Traceback (most recent call last):
  File "temp.py", line 5, in ?
    mtAt2  = array([ [1,2],        
TypeError: an integer is required
python ���s�}�N��

���g���̃G�f�B�^�E�}�N���� python �R�[�h�����̂悤�Ƀu���b�N���s������}�N������鎖�����߂܂��B�����g�� WZ �G�f�B�^���g���Ă��� WZ �� shell �}�N���ƁA����ɍs�A�u���b�N���s�}�N����g�ݍ��킹�Ă��܂��B����ɂ‚��Ă��\�[�X�ƈꏏ�Ɍ��J���Ă���܂��B�X������Ό䗘�p���������B

���� python ���s�}�N���́A //@@ ���� //@@@ �܂ł̊Ԃɂ͂��܂ꂽ��������J�����g�E�f�B���N�g���� temp.py �ɏ����o���upython temp.py�v�����s��������̂ł��B

//@@
  ��
  ��<== ctrl O + P ���삳�ꂽ�Ƃ��A���͈̔͂��J�����g �f�B���N�g���� temp.py ��
  ��    �����o�� python temp.py �����s����
//@@@
�Ȍ� python code //@@ ... //@@@ �ň͂܂ꂽ�R�[�h�́A���̂悤�Ɏ��s����� python �R�[�h�Ɖ��߂��Ă��������B

numarray/Numerec �ōs���鏈��

numarray/Numeric �ɂ́A���̂悤�ɐ������� array �𑀍삷��֐���������Ă��܂��B�ł��s��E�x�N�g���v�Z�������镪�ɂ� �� �̕t�����֐��������g�������ōς݂܂��B���̑��̊֐��́Apython �ł̐��`�㐔�v�Z�Ɋ���Ă���ēx���ׂ�Ώ[���ł��傤�B

Numeric.py �ɂ���ŏ��̃h�L�������e�[�V������������

Functions

��  array                      - NumPy Array construction
��  zeros                      - Return an array of all zeros
-   shape                      - Return shape of sequence or array
-   rank                       - Return number of dimensions
-   size                       - Return number of elements in entire array or a
                                 certain dimension
-   fromstring                 - Construct array from (byte) string
-   take                       - Select sub-arrays using sequence of indices
-   put                        - Set sub-arrays using sequence of 1-D indices
-   putmask                    - Set portion of arrays using a mask 
��  reshape                    - Return array with new shape
-   repeat                     - Repeat elements of array
-   choose                     - Construct new array from indexed array tuple
-   cross_correlate            - Correlate two 1-d arrays
-   searchsorted               - Search for element in 1-d array
-   sum                        - Total sum over a specified dimension
-   average                    - Average, possibly weighted, over axis or array.
-   cumsum                     - Cumulative sum over a specified dimension
-   product                    - Total product over a specified dimension
-   cumproduct                 - Cumulative product over a specified dimension
-   alltrue                    - Logical and over an entire axis
-   sometrue                   - Logical or over an entire axis
-   allclose                   - Tests if sequences are essentially equal

More Functions:

-   arrayrange (arange)        - Return regularly spaced array
-   asarray                    - Guarantee NumPy array
-   sarray                     - Guarantee a NumPy array that keeps precision 
-   convolve                   - Convolve two 1-d arrays
-   swapaxes                   - Exchange axes
-   concatenate                - Join arrays together
��  transpose                  - Permute axes
-   sort                       - Sort elements of array
-   argsort                    - Indices of sorted array
-   argmax                     - Index of largest value                      
-   argmin                     - Index of smallest value
-   innerproduct               - Innerproduct of two arrays
��  dot                        - Dot product (matrix multiplication)
-   outerproduct               - Outerproduct of two arrays
��  resize                     - Return array with arbitrary new shape
-   indices                    - Tuple of indices
-   fromfunction               - Construct array from universal function
-   diagonal                   - Return diagonal array
��  trace                      - Trace of array
-   dump                       - Dump array to file object (pickle)
-   dumps                      - Return pickled string representing data
-   load                       - Return array stored in file object
-   loads                      - Return array from pickled string
-   ravel                      - Return array as 1-D 
-   nonzero                    - Indices of nonzero elements for 1-D array
-   shape                      - Shape of array
-   where                      - Construct array from binary result
-   compress                   - Elements of array where condition is true
-   clip                       - Clip array between two values
��  zeros                      - Array of all zeros
��  ones                       - Array of all ones
��  identity                   - 2-D identity array (matrix)

(Universal) Math Functions 

       add                    logical_or             exp        
       subtract               logical_xor            log        
       multiply               logical_not            log10      
       divide                 maximum                sin        
       divide_safe            minimum                sinh       
       conjugate              bitwise_and            sqrt       
       power                  bitwise_or             tan        
       absolute               bitwise_xor            tanh       
       negative               invert                 ceil       
       greater                left_shift             fabs       
       greater_equal          right_shift            floor      
       less                   arccos                 arctan2    
       less_equal             arcsin                 fmod       
       equal                  arctan                 hypot      
       not_equal              cos                    around     
       logical_and            cosh                   sign
       arccosh                arcsinh                arctanh

�e�֐��̊T���@�\��m�肽���Ƃ��A���̃R�[�h�Ńh�L�������e�[�V�����������\���������܂��B


//@@
import Numeric as Nm
print dir(Nm)
help(Nm.zeros)
# other helps of commands
//@@@
['ArrayType', 'Character', 'Complex', 'Complex0', 'Complex16', 'Complex32', 'Complex64', 
'Complex8', 'DumpArray', 'Float', 'Float0', 'Float16', 'Float32', 'Float64', 'Float8', 'Int', 
'Int0', 'Int16', 'Int32', 'Int8', 'LittleEndian', 'LoadArray', 'NewAxis', 'Pickler', 'PrecisionError', 
'PyObject', 'StringIO', 'UInt', 'UInt16', 'UInt32', 'UInt8', 'Unpickler', 'UnsignedInt16', 
'UnsignedInt32', 'UnsignedInt8', 'UnsignedInteger', '__builtins__', '__doc__', '__file__', 
'__name__', '__version__', '_numpy', 'absolute', 'add', 'allclose', 'alltrue', 'arange', 
'arccos', 'arccosh', 'arcsin', 'arcsinh', 'arctan', 'arctan2', 'arctanh', 'argmax', 'argmin', 
'argsort', 'around', 'array', 'array2string', 'array_constructor', 'array_repr', 'array_str', 
'arrayrange', 'arraytype', 'asarray', 'average', 'bitwise_and', 'bitwise_or', 'bitwise_xor', 
'ceil', 'choose', 'clip', 'compress', 'concatenate', 'conjugate', 'convolve', 'copy', 'copy_reg', 
'cos', 'cosh', 'cross_correlate', 'cumproduct', 'cumsum', 'diagonal', 'divide', 'divide_safe', 
'dot', 'dump', 'dumps', 'e', 'equal', 'exp', 'fabs', 'floor', 'floor_divide', 'fmod', 'fromfunction', 
'fromstring', 'greater', 'greater_equal', 'hypot', 'identity', 'indices', 'innerproduct', 'invert', 
'left_shift', 'less', 'less_equal', 'load', 'loads', 'log', 'log10', 'logical_and', 'logical_not', 
'logical_or', 'logical_xor', 'math', 'matrixmultiply', 'maximum', 'minimum', 'multiarray', 'multiply', 
'negative', 'nonzero', 'not_equal', 'ones', 'outerproduct', 'pi', 'pickle', 'pickle_array', 'power', 
'product', 'put', 'putmask', 'rank', 'ravel', 'remainder', 'repeat', 'reshape', 'resize', 'right_shift', 
'sarray', 'searchsorted', 'shape', 'sign', 'sin', 'sinh', 'size', 'sometrue', 'sort', 'sqrt', 'string', 
'subtract', 'sum', 'swapaxes', 'take', 'tan', 'tanh', 'trace', 'transpose', 'true_divide', 'typecodes', 
'types', 'vdot', 'where', 'zeros']
Help on built-in function zeros:

zeros(...)
    zeros((d1,...,dn),typecode='l',savespace=0) will return a new array of shape (d1,...,dn) and type 
    typecode with all it's entries initialized to zero.  If savespace is nonzero the array will be a 
    spacesaver array.

linear algebra �ɔ�����Ă���@�\

Fortran �Ŏ��т̂�����`���Z�p�b�P�[�W lapack �� python �ɈڐA����Ă��܂��B���̍s��֌W�̊֐����p�ӂ���Ă��܂�

# numarray\linear_algebra\LinearAlgebra2.py �܂��� 
# Numeric\LinearAlgebra.py �Ɏ�������Ă��܂��B
def solve_linear_equations(a, b):
def inverse(a):
def cholesky_decomposition(a):
def qr_decomposition(a, mode='full'):
def eigenvalues(a):
def eigenvectors(a):
def singular_value_decomposition(a, full_matrices = 0):
def generalized_inverse(a, rcond = 1.e-10):
def determinant(a):
def linear_least_squares(a, b, rcond=1.e-10):

�����̊֐��� array �^�̍s��ɑ΂��Ď�������Ă��܂��Barray ���p������ Matrix �ł͂���܂���BLapack �̈ڐA���s������������ Matrix ���W���[���̊J���҂Ƃ͕ʂ̕��̂悤�ł��Barray �� lapack �̎������I�������� Matlab �Ƃ̌݊������߂� Matrix wrapper �����������悤�Ɍ����܂��B

���݂̒i�K�ł́A�Ȃ܂� Matrix �^���g�킸�� array �͈̔͂����Ōv�Z�v���O�������L�q���������ȒP�ɂȂ�܂��B�s��̐ς� dot(,) �ŋL�q���悤�� * operator �ŋL�q���悤���卷����܂���B*, ** ���Z�q�ɂ�錩���ڂ͐����ɋ߂��Ȃ�܂����A��������� Matrix �� array �^�����݂��邱�ƂɂȂ�F�X�Ƙf�킳��܂��B����̐����ɋ߂��L�q��]�ނȂ�A��Ő������� sf ���g���ׂ��ł��B

�x�N�g��:�ꎟ�� array

python �ł� array �ɂ��x�N�g�����Z�v���O���������Ă݂܂��傤�B

�x�N�g��:�ꎟ�� array �̐���

tuple, list �̐��l�ꎟ���V�[�P���X�E�f�[�^����A�ꎟ���x�N�g���F�ꎟ�� array �����̂悤�ɐ����ł��܂��B�܂�range(..) �Ń��X�g�����Ɠ��l�ɁAstart/end[/step] �������g���� arange(..) �Ńx�N�g���F�ꎟ�� array ����邱�Ƃ��ł��܂��Barange(..) �͕��������_�������ɂł��܂��B(range(..) �ł� int �����Ɍ��肳��܂��B)�B�ł� arange �ł����f���܂ł͈����܂���B���f���ł͑召�֌W����`�łȂ��̂ŁA���/�����ɓ��B����������ł��Ȃ����߂ł��傤�B(sf �Ȃ�Ε��f���܂ň����܂��Bstart, size, stride �ɂ�� slice array �`���̃p�����[�^�ݒ�̕����D��Ă��܂��B)

//@@
from Numeric import *
# generage array from tuple, list
print array([1,2,3])
print array( (4,5,6,7) )
print array(range(1,10))

# arange(..) function
print arange(3,12)
print arange(-0.4, 0.5, 0.1)
#TypeError: can't convert complex to float; use abs(z)
#print arange(-0.4+0j, 0.5+0j, 0.1j)
//@@@

[1 2 3]
[4 5 6 7]
[1 2 3 4 5 6 7 8 9]
[ 3  4  5  6  7  8  9 10 11]
[-0.4 -0.3 -0.2 -0.1  0.   0.1  0.2  0.3  0.4]

array ���ێ��ł��鐔�l�^

array �v�f���ێ��ł��鐔�l�^�����̂悤�ɒ�߂��Ă��܂��B

bool
Int8,       UInt8,   # Uint8 �� unsigned integer 8bit �̈Ӗ��ł�
Int16,      UInt16, 
Int32,      UInt32, 
Int64,      UInt64, 
Float32,    Float64
Complex32,  Complex64

�����̐��l�^�� array ���̂̌^�ł��B�•� array �v�f�̌^�ł͂���܂���Barray �̌^�� .type() �Ŋm�F�ł��܂��Btuple �܂��� list �̃V�[�P���X�^�������� array �^�́A�f�t�H���g�ł� Int32, Int32, Float64, Complex64 �̉��ꂩ�ł��Barray(.) �ɃV�[�P���X�^�f�[�^��^���Ĉꎟ���x�N�^�𐶐�����Ƃ�,��Ԗڂ̈����� array �^���w��ł��܂��Barray �^���w�肵�Ȃ��Ƃ��́A�f�t�H���g�^�Ǝw�肳��Ă��� Int32 �܂��� Foat64, Complex64 �^�ɂȂ�܂��B

//@@
from numarray import *

vctAt=array([1,2,3])
print type(vctAt[0])
print vctAt.type()

vctAt=array([1.01,2,3])
print type(vctAt[0])
print vctAt.type()

vctAt=array([1.01,2,3], Float32)
print vctAt.type()

vctAt=array([1+0.1j,2,3])
print vctAt.type()

print arange(3,12).type()
//@@@

< type 'int'>
Int32
< type 'float'>
Float64
Float32
Complex64
Int32

�x�N�^�F�ꎟ�� array �v�f�̃A�N�Z�X

�ꎟ�� array�ɂ‚��Ă� list �� tuple �Ɠ��l�ɁA[..] �� ':' ���g���A�v�f�ւ̃C���f�b�N�X���w�肷�邱�ƂŃA�N�Z�X���܂��B[start: end: step] �̎O�‚̃p�����[�^�ɂ�镔����̎w��͏d�󂵂܂��B���ɍs��̎΂ߗv�f�Q�̎w��ɕ֗��ł��B����Ă����ׂ��ł��B

//@@
# -*- encoding: cp932 -*-
from Numeric import *
vctAt = array(range(1,10))
print vctAt
print vctAt[3]
print vctAt[3:7]
print vctAt[3:]
print vctAt[:3]
print vctAt[-2]
# step:2 ���w�肵���v�f�̎��o��
print vctAt[3:7:2]

vctAt[0]=100
print vctAt
 
# �X�e�b�v step:2 ���g�����v�f�ւ̑��
# Int32 �^�� array �ɕ��������_���w�肵�Ă� Int32 �����ɂȂ��Ă��܂�
vctAt[3:7:2] = [4.1, 8.2]
print vctAt
//@@@

[1 2 3 4 5 6 7 8 9]
4
[4 5 6 7]
[4 5 6 7 8 9]
[1 2 3]
8
[4 6]
[100   2   3   4   5   6   7   8   9]
[100   2   3   4   5   8   7   8   9]

�x�N�^�F�ꎟ�� array �ǂ����� + - * / ���Z

�T�C�Y�������x�N�^:�ꎟ�� array �ǂ����ł� + - * / ���Z�q���g�����l�����Z���”\�ł��B

//@@
from scipy import *

vctLeftAt = array(range(0,5),Float64)
vctRightAt = array(range(5,10))

print vctLeftAt
print vctRightAt
print vctLeftAt + vctRightAt
print vctLeftAt - vctRightAt
print vctLeftAt * vctRightAt
print vctLeftAt / vctRightAt

//@@@

[ 0.  1.  2.  3.  4.]
[5 6 7 8 9]
[  5.   7.   9.  11.  13.]
[-5. -5. -5. -5. -5.]
[  0.   6.  14.  24.  36.]
[ 0.          0.16666667  0.28571429  0.375       0.44444444]
scipy ���W���[��

Enthought �܂��� scipy �p�b�P�[�W���C���X�g�[�����Ă���Ƃ��́ANumeric �̕ς��� scipy ���W���[���� import ���邾���ŁANumeric �@�\���g����悤�ɂȂ�܂��Bscipy ���W���[���� array �ȊO�� fft �������������\���o�[�ȂǁA�p�b�P�[�W���p�ӂ��Ă��鐔�l���Z��ʂ�Z�߂� import�^�g����悤�ɂ��܂��B������d�󂵂܂��B

�x�N�^�F�ꎟ�� array �ƃX�J���[�� + - * / �l�����Z

�܂� �x�N�^:�ꎟ�� array �� scalar �� + - * / �l�����Z���”\�ł��B

//@@
from Numeric import *

vctLeftAt = array(range(0,5))
print vctLeftAt * 3.3
print vctLeftAt / 3.3
print vctLeftAt + 3.3
print vctLeftAt - 3.3
//@@@

[  0.    3.3   6.6   9.9  13.2]
[ 0.          0.3030303   0.60606061  0.90909091  1.21212121]
[ 3.3  4.3  5.3  6.3  7.3]
[-3.3 -2.3 -1.3 -0.3  0.7]

�Ō�̃x�N�^�F�ꎟ�� array �� scalar �Ƃ̉����Z�͐��w�ł͒�`����Ă��܂��񂪁Aarray �� scalar �� + - ���Z�Ƃ��Ď�������Ă��܂��B�ł��A���̂悤�Ȑ��w�ł͎g��Ȃ��ꎟ�� array �� scalar �� +,- ���Z�͔�����ׂ��ł��B(array �ł̍s��ƃx�N�^�Ƃ̐ςł́A�����Ƒ����̐��w�I�ɂ͒�`����Ă��Ȃ����Z����������Ă��܂��B)

�x�N�^�F�ꎟ�� array �ǂ����� dot ���Z

dot(.) �֐����x�N�^�F�ꎟ�� array �ǂ����ɓ�������Ɠ��όv�Z�����Ă���܂��B
//@@
from numarray import *

print dot(array([1,2,3]),array([4,5,6]) )
//@@@

32

���f���x�N�g���̂Ƃ��� dot �֐��͓��ςł͂���܂���B �v�f���̊|���Z�Ƒ��������ɂ����Ȃ�����ł��Bconjugate ������Ă���̊|���Z�Ƒ������킹�ł͂���܂���B���f���x�N�g���̓��ς��v�Z������ɂ͎����� conjugate(.) �֐��𓭂����܂��B

//@@
from Numeric import *

print dot(array([1+2j,2,3]),array([1+2j,5,6]) )
print dot(array([1+2j,2,3]),conjugate(array([1+2j,5,6])) )
//@@@

(25+4j)
(33+0j)

Numeric ���W���[���ɂ� innerproduct(.) �֐����L��܂��B�ł��c�O�Ȃ��� dot(.) �Ɠ����ł����B���f�x�N�g���̓��ς��v�Z������ɂ� conjugate() ���K�v�ł����B

�s��F�񎟌� array

array �͓񎟌��ȏ�̍s��������܂��BmatrixInstance[i,j] �̂悤�ȍs��`���ł̃C���f�b�N�X�w�肪�”\�ł��B�񎟌� array �C���X�^���X�ɑ΂��� lapack �֐��𓭂������܂��B

array �z��� : �ɂ��A�N�Z�X����������قǂɗl�X�̎g�������lj�����Ă��܂��B�ł��Ƃ肠�����́u �s��[index, :] �v�� index �s�̃x�N�g�� array ���A�u �s��[:, index] �v�� index ��̃x�N�g�� array ��\�����Ƃ𗝉����Ă����΁A��̂̍s�񏈗��͉”\�ł��B

�s��:�񎟌� array �̐���

tuple, list �̓񎟌��V�[�P���X����s��F�񎟌� array �����̂悤�ɐ������܂��B

//@@
from numarray import *
mtAt = array([[1,2,3],
              [4,5,6],
              [7,8,10]])
print mtAt
print mtAt.type()
//@@@

[[ 1  2  3]
 [ 4  5  6]
 [ 7  8 10]]
Int32

Numeric �̓񎟌� array �ł� .type() ���g���܂���B

//@@
from Numeric import *
mtAt = array([[1,2,3],
              [4,5,6],
              [7,8,10]])
print mtAt
# AttributeError: type
print mtAt.type()
//@@@

�s��F�񎟌� array �ł͑S�Ă̍s�A��̃T�C�Y�������łȂ���΂Ȃ�܂���B�����łȂ��ƃG���[�ɂȂ�܂��B

//@@
from numarray import *
# ValueError: Nested sequences with different lengths.
mtAt = array([[1,2,3],
              [4,5],
              [7,8,10]])
//@@@
reshape(.) ���g�����ƂŁA�ꎟ���x�N�^ array ����񎟌��s�� array �ɕό`���邱�Ƃ��”\�ł��B
//@@
# -*- encoding: cp932 -*-
from numarray import *

# [1,2,..,10] �̃x�N�g������� 2x5 �s��� reshape ����
print reshape( arange(10), (2,5) )
//@@@

[[0 1 2 3 4]
 [5 6 7 8 9]]

zeros(,) �ɂ���ėv�f�S�Ă� 0 �̍s����Aones(,) �ɂ���āA�v�f�S�Ă� 1 �̍s��𐶐��ł��܂��B identity(.) �ɂ���āA�w��T�C�Y�̒P�ʍs������܂��B

//@@
# -*- encoding: cp932 -*-
from scipy import *
# 2x5 �̑S�v�f�� 0 �̐����s������܂�
print zeros( (2,5) )
# 3x5 �̑S�v�f�� 1 �̐����s������܂�
print ones( (3,5) )
# 5x5 �̕��������_�̒P�ʍs������܂�
print identity(5, Float64  )
//@@@

[[0 0 0 0 0]
 [0 0 0 0 0]]
[[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]
[[ 1.  0.  0.  0.  0.]
 [ 0.  1.  0.  0.  0.]
 [ 0.  0.  1.  0.  0.]
 [ 0.  0.  0.  1.  0.]
 [ 0.  0.  0.  0.  1.]]

�s��F�񎟌� array �v�f�̃A�N�Z�X

�񎟌� array �ɂ‚��Ă� matrixInstance[i,j] �̂悤�ɁA��‚� index �ŁA�s��v�f���w��ł��܂��BmatrixInstance[i,:] �ɂ�� i �s�v�f���A matrixInstance[:,j] �ɂ�� j ��v�f���w��ł��܂��BmatrixInstance[start:end:step] �ŕ����v�f���w��ł��܂��B

//@@
# -*- encoding: cp932 -*-
from Numeric import *

mtAt = reshape( arange(4*4), (4,4) )
print mtAt

mtAt[0,0] = 100
print mtAt

print mtAt[0,:]
print mtAt[:,1]
#�s��̑Ίp�v�f�������w�肵�܂�
print mtAt[0:5:6]
//@@@

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
[[100   1   2   3]
 [  4   5   6   7]
 [  8   9  10  11]
 [ 12  13  14  15]]
[100   1   2   3]
[ 1  5  9 13]
[ [100   1   2   3]]

�s��F�񎟌� array �ǂ����^scalar�^�x�N�^ �Ƃ� + - * / ���Z

�T�C�Y�̓����s��ǂ����̎l�����Z�͗v�f���̉��Z����p�����邾���ł��B

//@@
# -*- encoding: cp932 -*-
from Numeric import *

mtLeftAt = reshape( arange(3*3), (3,3) )
mtRightAt = reshape( arange(1.0, 3*3+1), (3,3), )
print mtLeftAt
print mtRightAt

print mtLeftAt + mtRightAt
print mtLeftAt - mtRightAt
print mtLeftAt * mtRightAt
print mtLeftAt / mtRightAt
//@@@

[[0 1 2]
 [3 4 5]
 [6 7 8]]
[[ 1.  2.  3.]
 [ 4.  5.  6.]
 [ 7.  8.  9.]]
[[  1.   3.   5.]
 [  7.   9.  11.]
 [ 13.  15.  17.]]
[[-1. -1. -1.]
 [-1. -1. -1.]
 [-1. -1. -1.]]
[[  0.   2.   6.]
 [ 12.  20.  30.]
 [ 42.  56.  72.]]
[[ 0.          0.5         0.66666667]
 [ 0.75        0.8         0.83333333]
 [ 0.85714286  0.875       0.88888889]]

�s��F�񎟌� array �� scalar �Ƃ̏揜�Z�͐��w�Ɠ������ʂɂȂ�܂��B�ł� scalar �Ƃ̉����Z�͍s��v�f�S���ɑ΂��ē��� scalar �ʂ𑫂�����������肵�܂��B�G���[�ɂ͂Ȃ�Ȃ��̂ł����ӂ��������B

//@@
# -*- encoding: cp932 -*-
from numarray import *
mtAt = reshape( arange(3*3), (3,3) )

print mtAt*3.4
print mtAt/3.4
print mtAt+3.4
print mtAt-3.4
//@@@

[[  0.    3.4   6.8]
 [ 10.2  13.6  17. ]
 [ 20.4  23.8  27.2]]
[[ 0.          0.29411765  0.58823529]
 [ 0.88235294  1.17647059  1.47058824]
 [ 1.76470588  2.05882353  2.35294118]]
[[  3.4   4.4   5.4]
 [  6.4   7.4   8.4]
 [  9.4  10.4  11.4]]
[[-3.4 -2.4 -1.4]
 [-0.4  0.6  1.6]
 [ 2.6  3.6  4.6]]

�x�N�g���ꎟ�� array �Ƃ̐ς͔���ɂ������ʂƂȂ�܂��B���w�ɂ�����s��ƃx�N�^�̐ςɂ͂Ȃ�܂���B�g��Ȃ��ق�������ł��B���w�̈Ӗ��ł̍s��ƃx�N�^�̐ς��v�Z������ɂ͎��ɏq�ׂ� dot(,) �֐����g���܂��B

�s��F�񎟌� array �ǂ����́^�x�N�^ �Ƃ� dot ���Z

dot(,) �֐����A�s��F�񎟌� array �ǂ����ɁA�܂��s��ƃx�N�^�F�ꎟ�� array �ǂ����ɓ��������܂��B�s��̐ρA�܂��͍s��ƃx�N�^�̐ρA���ς��v�Z���Ă���܂��B
//@@
# -*- encoding: cp932 -*-
from scipy import *

mtLeftAt = reshape( arange(3*3), (3,3) )
mtRightAt = reshape( arange(1.0, 3*3+1), (3,3), )

print dot( mtLeftAt, mtRightAt)
print dot( mtLeftAt, [1,2,3])

print dot( (4,5,6), [1,2,3])
//@@@

[[  18.   21.   24.]
 [  54.   66.   78.]
 [  90.  111.  132.]]
[ 8 26 44]
32

�s��ƃx�N�^�� dot ���Z�ł̓x�N�g�����c�s��ɒ����Ȃ��Ă��A�������v�Z���Ă���܂��B��ŏq�ׂ� Matrix ���g���Əc�s��ɏC�����Ă��Ȃ��ƌv�Z���Ă���܂���Barray �ł̍s��ƃx�N�g���� dot ���Z���g���Ă������ق����L�q���ȒP�ł��B

LAPACK ���`���Z

Fortran �ŊJ�����ꂽ lapack �� phtyhon �� linear algebra ���W���[���ɈڐA����Ă��܂��B�����ɂ���֐��� array �s��C���X�^���X�ɓK�p���܂��B�܂���Ԏg���p�x�̍����A�t�s������߂� inverse(.) �֐�����n�߂܂��B

//@@
# -*- encoding: cp932 -*-
from numarray import *

mtAt = reshape( arange(3*3), (3,3) )
# �t�s�񂪑��݂���l�ɂ���
mtAt[2,2] = 10

from numarray.linear_algebra import *
print inverse(mtAt)

# �m�F�v�Z
print dot(inverse(mtAt), mtAt)
//@@@

[[-0.83333333 -0.66666667  0.5       ]
 [ 0.          2.         -1.        ]
 [ 0.5        -1.          0.5       ]]
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
linear algebra ���W���[��

dot �Ȃǂ� lapack �ɂ����`�㐔���Z���s���Ƃ�i�ɂ́A

import ���܂��B

�t�s�񂪑��݂��Ȃ��s��� inverse(.) �𓭂�����ƃG���[�ɂȂ��Ă���܂��B

//@@
# -*- encoding: cp932 -*-
from Numeric import *

# mtAt �̋t�s�񂪑��݂��܂���B
mtAt = reshape( arange(3*3), (3,3) )

from LinearAlgebra import *
# LinearAlgebra.LinAlgError: Singular matrix
print inverse(mtAt)
//@@@

���̑��� lapack �֐������s�����܂��B

//@@
# -*- encoding: cp932 -*-
from numarray import *

mtAt = reshape( arange(3*3), (3,3) )
# �t�s�񂪑��݂���l�ɂ���
mtAt[2,2] = 10

from numarray.linear_algebra import *
#from LinearAlgebra import *
#print cholesky_decomposition(mtAt)
print qr_decomposition(mtAt)
print eigenvalues(mtAt)
print eigenvectors(mtAt)
print singular_value_decomposition(mtAt)
print generalized_inverse(mtAt)
print determinant(mtAt)
//@@@

(array([[ 0.        ,  0.91287093,  0.40824829],
       [-0.4472136 ,  0.36514837, -0.81649658],
       [-0.89442719, -0.18257419,  0.40824829]]), array([[ -6.70820393,  -8.04984472, -11.18033989],
       [  0.        ,   1.09544512,   1.82574186],
       [  0.        ,   0.        ,   0.81649658]]))
[ 14.6544476   -1.04590831   0.39146071]
(array([ 14.6544476 ,  -1.04590831,   0.39146071]), array([[ 0.15082592,  0.45445878,  0.87790589],
       [ 0.90425716, -0.13682593, -0.40447207],
       [ 0.23673828, -0.84967597,  0.47117485]]))
(array([[-0.12899165,  0.9914205 , -0.02113178],
       [-0.45702173, -0.07834688, -0.88599825],
       [-0.88005244, -0.1046287 ,  0.46320681]]), array([ 15.45352414,   1.02187585,   0.37994924]), array([[-0.43041184, -0.5252812 , -0.73404721],
       [-0.84434213, -0.05320404,  0.53315635],
       [ 0.31911128, -0.8492638 ,  0.4206174 ]]))
[[ -8.33333333e-01  -6.66666667e-01   5.00000000e-01]
 [  1.20736754e-15   2.00000000e+00  -1.00000000e+00]
 [  5.00000000e-01  -1.00000000e+00   5.00000000e-01]]
-6.0

Matrix

numarray/Numeric �ɂ� array ���p�������A�s��̐ς� * �ŁA�ׂ���� ** �ŁA.I �ŋt�s����v�Z������ Matrix �N���X��������Ă��܂��B import ���邱�Ƃ� Matrix �^���g����悤�ɂȂ�܂��Bscipy �ł́AMatrix �ł͂Ȃ� mat ���g���܂��Bscipy ���W���[���� import �����Ŏg���܂��Bscipy.matrix �̂悤�ȃT�u�E���W���[�����C���|�[�g���邱�Ƃ͂���܂���B
//@@
from numarray import *
from numarray.matrix import *
mtAt = Matrix([[1,2,3],
              [4,5,6],
              [7,8,10]])
print mtAt*mtAt
print mtAt**2
print mtAt**-1
print mtAt**-1 * mtAt
//@@@

[[ 30  36  45]
 [ 66  81 102]
 [109 134 169]]
[[ 30  36  45]
 [ 66  81 102]
 [109 134 169]]
[[-0.66666667 -1.33333333  1.        ]
 [-0.66666667  3.66666667 -2.        ]
 [ 1.         -2.          1.        ]]
[[  1.00000000e+00   0.00000000e+00   0.00000000e+00]
 [  0.00000000e+00   1.00000000e+00  -3.55271368e-15]
 [  0.00000000e+00   0.00000000e+00   1.00000000e+00]]

�ł��t�s�񂪑��݂��Ȃ��͂��Ȃ̂Ɍv�Z���Ă���܂�

//@@
from numarray import *
from numarray.matrix import *
mtAt = Matrix([[1,2,3],
              [4,5,6],
              [7,8,9]])
print mtAt*mtAt
print mtAt**2
print mtAt**-1
print mtAt**-1 * mtAt
//@@@

[[ 30  36  42]
 [ 66  81  96]
 [102 126 150]]
[[ 30  36  42]
 [ 66  81  96]
 [102 126 150]]
[[ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]
 [  9.00719925e+15  -1.80143985e+16   9.00719925e+15]
 [ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]]
[[ 0. -4. -8.]
 [-8.  0.  0.]
 [ 4.  0.  0.]]

Matrix * array ���v�Z������� Matrix �ɂȂ��Ă��܂��܂��B dot(array, array) �� array �͈̔͂ŕ‚��Ă��薳�p�Ȍ^�̕ϊ����������܂���Bdot(.) �̕����g���₷�������܂��B

Matrix ���W���[���́Aarray ���p������ Matrix �N���X������Ė����� * ** ���Z�q���������������Ɍ����܂��BMatrix �̊����x�͒Ⴍ�����܂��B

���ہA�S���E�� web page �ł� Matrix �ɂ‚��Ă͖w�lj������Ă��܂���BMatrix ���g���ƌv�Z���x�����{���x���Ȃ�܂��BNumerx\Matrix.py �����Ă��A�������Ă���͉̂��Z�q�̃I�[�o�[���[�h�����ł��B

����ɂ́A��ɂ���悤�ȋt�s�񂪑��݂��Ȃ��͂��Ȃ̂Ɍv�Z���Ă��܂��s�s�������荞��ł��܂��B

�����g�� Matrix ���g��Ȃ��悤�ɂ��Ă��܂��B�ǂ����Ă��ŏ��� Matrix ���g�����ق����֗��ɂ݂��܂��B�ł��A����Ōv�Z���悤���āA���낢��ƃg���u���ɑ������܂����B�n�߂� Matrix ���g��Ȃ����Ƃ𐄏����܂��BPython �ł̐��`�㐔�����S�̂����n����悤�ɂȂ��Ă���p�r�����肵�� Matrix �^���g���ׂ����Ǝ咣���܂��B���̂ق��������I�� python �ł̐��`�㐔�v�Z���g�����Ȃ���悤�ɂȂ�܂��B

sf �� python ���p�̂�����

sf �Ƃ�

sf �͍s��/�x�N�g���v�Z�ɓ������� CUI �A�v���P�[�V�����ł��B Windows �R���\�[��������g���܂����A�G�f�B�^�ɑg�ݍ��ނ��ƂŁA�����ʓI�Ɏg���܂��B���� Wz �}�N�� �ɑg�ݍ���ł��܂��Bctrl O + N �܂��� ctrl O + S ����ɂ��A�G�f�B�^��ʂ̃J�[�\���ʒu�ɂ��� sf�� �܂��� sf �u���b�N�������s�����Ă��܂��B

���̑��Ɏ��̂悤�ȓ���������Ă��܂�

sf ���g���� python �� 1/2 ���� 1/3 ���x�ōs�� �x�N�^�v�Z�������L�q�ł��܂��Bsf �Ńv���g�^�C�v������ē�����m�F���Ă���Apython �ɗ��Ƃ��ďڍׁE�����v�Z����������@���g���܂��B���ۂ��Ɗy�̉^���̃V�~�����[�V�����ŁA sf �ɂ��v���g�^�C�v�����Apython �ŏڍׁE�����v�Z�����Ă��܂��B

sf �ɂ��O���t�\��

gdsp.bat gspl.bat �ɂ�� sf �x�N�^�ϐ��^�s��ϐ��� gnuplot �ɃO���t�\���������܂��B���̃o�b�` �v���O������ sf �t�@�C���ϐ��� gnuplot �ŕ\���ł���t�H�[�}�b�g�ɕϊ��� gnuplot.ini �ɏ����o���Ă��Agnuplot.exe ���N�����܂��Bgdsp.bat, gdsp.bat �̒��g�͎��̂悤�Ȃ��̂ł��B

type gdsp.bat
  gnpltMDt.exe %1 > gnuplot.ini
  start wgnuplot.exe

type gspl.bat
  gnSplt.exe %1 > gnuplot.ini
  start wgnuplot.exe

gnpltMDt.exe, gnSplt.exe �� sf �t�@�C���ϐ��� gnuplot �����̃f�[�^�ɕϊ�����t�B���^�[ �v���O�����ł��B������������ �ɂ��� sf12?zip:sf �̔z�z zip �t�@�C���Ɋ܂܂�Ă��܂��B

�Ⴆ�� [0,2��] �ł� sin(1+x^2) �̊֐��O���t�����̂悤�ɕ\���������܂�

N@=128, <<0,N,2`��/N @x| !sin(1+x^2)>>
gdsp
N@=128, temp=<<0,N,2`��/N @x| !sin(1+x^2)>>
gdsp temp

gnuplot �Ȃǂ��N�������Ԃ��܂߂čl����ƁAsf �� gdsp.bat �ɂ�邱�Ƃ��A�֐��O���t��\���������ԒP���ȕ��@���Ǝ咣���܂��B

�ɒ[�Ȃ܂łɒP�������Ă��邽�߁A��� gnuplot �̃O���t�\���� x ���̃����W�� [0,140] �ɂȂ��Ă��܂��B[0, 2��] �ɂȂ��Ă��܂���B�ł����[�U�[�͉����͈̔͂� [0,2��] �ł��邱�Ƃ͉����Ă��܂��B[0,140] �ŗǂ��Ǝ咣���܂��B!print(�\������R�}���h������) sf �R�}���h�ɂ��Agnuplot �ɕ\������R�}���h������������n���܂��Bgnuplot �O���t�̉����� [0,2��] �ɂł��܂��B�ł��ʏ�́A���ꂾ���̎�Ԃ�������Ӗ�������܂���B

python �ɂ��O���t�\��

scipy �� pylab ���W���[�����g���� python �Ŏ��̂悤�ɁAmatlab �ɋ߂��`�ŃO���t��\���������܂��B( Enthought �̃p�b�P�[�W�ŃC���X�g�[�����Ă���� pylab ���C���X�g�[������Ă��܂��B)

//@@
from scipy import *
from pylab import *
_N = 128
_arSin = [sin(1+x**2) for x in arange(0,2*pi, 2*pi/_N)]
plot(arange(_N)*2*pi/_N, _arSin)  # pair connect with line
show()
//@@@

sf �ɂ��O�������b�V���\��

gspl.bat �͎O�������b�V���\����������Ƃ��Ɏg���܂��B���ɗ�������܂��B

//@@
/s
N@=30
_temp@=[[N]]
<<0,N,2`��/N @x,j|\
    <<0,N,2`��/N @y,k|\
        _temp[j,k]=!sin(x^2+y^2)
    >>
>>
temp = _temp
//@@@
gspl temp

gdsp, gspl �̂��ڍׂȐ����ɂ‚��ẮA���������Q�Ƃ��������B

sfVal.py �̂�����

sf �� python ���~�b�N�X���Ďg���܂��Bsf �̃��[�U�[�֐��Ƃ��� python �R�[�h�ŏ����ꂽ�֐����Ăяo���܂��B�t�� python �R�[�h�Ōv�Z�����s��^�x�N�g�� �f�[�^�� sf �t�@�C���ϐ��ɕϊ����Asf �� ���܂��܂Ƒ���E����������@���g���܂��B���̂悤�� sf �� python �̋��p���”\�ɂ���̂� sfVal.py ���W���[���ł��B

sfVal.py ���W���[���� python �� array �N���X�ŋL�q�����s��^�x�N�g���ϐ��� sf �t�@�C���ϐ��Ƃ̊ԂŌ��݂ɕϊ����邱�Ƃ��”\�ɂ��܂��B

sfVal.getSf(.)

sfVal �� getSf() ���g���� sf �t�@�C���ϐ������̂悤�� python �� array �ϐ��ɕϊ��ł��܂��Bsf �ł̌v�Z���ʂ� python �� array �ϐ��Ɉڂ��܂��B

N@=128, << 0,N,2`��/N @x|!exp(!sin(x^2))>>
//@@
import scipy 
import pylab 
import sfVal 
_N = 128
_ar = sfVal.getSf('_dt') 
# pair connect with line
pylab.plot(scipy.arange(_N)*2*scipy.pi/_N, _ar)
pylab.show()
//@@@
sfVal.putSf(.)

�t�� sfVal �� putSf() ���g���� python �� array �ϐ������̂悤�� sf �t�@�C���ϐ��ɕϊ��ł��܂��Bpython �ł̌v�Z���ʂ� sf �ł��g���܂��B

# ���f���ʂł� �� �֐��̕��f���l���z���s��f�[�^�ɂ���
//@@
import scipy 
import sfVal 
_N = 128
_ar = scipy.array(
         [[ scipy.special.gamma(x+y*1j) for x in scipy.arange(-1+0.01,1,0.02)]
             for y in scipy.arange(1-0.01,-1,-0.02)
         ]
      )
sfVal.putSf(_ar,'rs') 
//@@@
# �������ɋ߂��ʒu�� [-1,1]�͈̔͂̃f�[�^��ϕ����Ă݂�
!sum(rs[49,*])0.01
< -2.27873-0.713216i >

# trace ���Ƃ��Ă݂�
!sum(rs[*,*])
< -29.9937+24.9733i >
sf ����� python ���[�`���̌Ăяo��
sf ���� python ���[�`�����Ăяo���āA���̏������ʂ� sf ���̓r���Ɏ�荞�ނ��Ƃ��ł��܂��B

sf �ɂ� �� �֐��Ȃǂ̓���֐�������܂���B�ł� python �� �� �֐����A���� python ���[�`������� �� �֐����Ăяo���܂��B_arg{1}.val �t�@�C���ϐ��ɌĂяo�����̈��������邱�ƁA_rs.val �Ɍ��ʂ����ĕԂ��K��������� python �R�[�h�����������ł��B

# _arg[1}.val �ϐ��ŗ^����ꂽ�X�J���[�l�ɑΉ����� �� �֐��l��Ԃ��B
//@@
import scipy 
import sfVal 
_ar = sfVal.getSf('_arg{1}') 
sfVal.putSf(scipy.array([scipy.special.gamma(_ar[0])]),'_rs') 
//@@@
//copy \#####.### gamma.py /y
~gamma.py(2)
< 1 >
~gamma.py(4)
< 6 >
!exp(~gamma.py(2+3i)^3)
< 1.00152+0.00109786i >

gamma.py() �����ɂ͕��f�����”\�ł��B����ɂ���ẮA���� gamma.py() sf ���[�U�[�֐��͏d�󂷂�ł��傤�B

sf ����� python �R�[�h�̌Ăяo���͓���֐��Ɍ���܂���B������������̋����Ȃǎg���؂�Ȃ��قǂ̐��l���Z�����p�b�P�[�W�� python ���W���[���Ƃ��Č��J����Ă��܂��B���[�U�[�̕K�v�ɉ����āAgetSf(),putSf() ��� sf ������Ăяo���Ă��������B�B

sfVal.putSf(), sfVal.getSf() �� array ��p�� pickles

sfVal.putSf(), sfVal.getsf() �̋@�\�̓J�����g �f�B���N�g���ւ� sf �e�L�X�g �t�@�C���`���ł̃f�[�^�̏����o���Ɠǂݏo���ł��B�V���A���C�Y���s���Ă��܂��B array ��p�� pickles �ł���Ƃ������܂��B

sfVal.putSf(), sfVal.getsf() �Ȃ�΁A�t�@�C���� open(.) ����K�v���L��܂���B�L�q���ȒP�ɂȂ�܂��B�V���A���C�Y�������ʂł���J�����g �f�B���N�g���� sf �t�@�C���ϐ��f�[�^�� sf �ɂ��A�O���t�\��������ȂǁA���̂܂܂ł����w�I�ȏ������ł��܂��B���֗��Ɏg���܂킹�܂��B

array �� pickles �Ƃ��Ă� sfVal.py �̂ق����d�󂷂�͂��ł��B���̈Ӗ��ł� putSf()/getSf() ���䗘�p���������B

sf �� python �̎g������

���K�͂Ȍv�Z�� sf �̂ق��������葁���s���܂��B~gamma.py(3.4i) 4/3 �ȂǂƐ����ɋ߂��L�q���ł��܂��B�ł��K�͂��傫���Ȃ�A��R�̃��[�v�������s���悤�ɂȂ�ƁACPU �̌v�Z���Ԃ����\���Ƃ�����悤�ɂȂ�܂��B���̂Ƃ��� python �̗��p���l����ׂ��ł��Bpython �̕����񌅋߂������ł��B

python �Ȃ�΁A���l���Z�̂��߂̃��W���[�������ɑ��݂��Ă��܂��B���`���Z���W���[�������֐����W���[���A�ϕ��^�����������\���o�[���W���[���A�v���b�g ���W���[���Ȃǂ������Ŕz�z����Ă��܂��B�������g���� C �v���O�����̂Ƃ����ȒP�ɁA���ȏ��ɏo�Ă��鐔���̋�̗�����܂��B�ł��v���O������Ƃ�K�v�Ƃ��܂��B

�t�ɑ����g���邪�P���ȉ����揜�Ȃǂ̏����́A�v���O�����̎�Ԃ��Ȃ� sf �ōs�킹�������ȒP�ł��B���x���g���� python �v�Z�� sf ���痘�p�ł��� python �R�[�h�ŏ����ꂽ���[�U�[�֐��ɂ��Ă��΁Asf �v�Z���� python �v�Z��g�ݍ���ł��܂��܂��B

�K�X�Asf, python �̏�����g�ݍ��킹�ė��������p���������B

�t�^

���̐����� python �ł̊ۂߕ�

�������̊���Z�ɂ��ۂߕ��� c ����Ƃ� 0.5 �Ԃ񂾂�����Ă��܂��B���̃R�[�h���Q�Ƃ��������B

//@@
print -1/2  0xff
print -2/2  0xfe
print -3/2  0xfd
print -4/2  0xfc
//@@@
-1
-1
-2
-2
//05.07.22 test -1/2
#include 
using namespace std;
void main (void)
{
    cout << -1/2 << endl;
    cout << -2/2 << endl;
    cout << -3/2 << endl;
    cout << -4/2 << endl;
}

//@@@
>copy c:\#####.### a.cpp /y
>cl a.cpp /MLd /W3 /Od /I.\vrf /D"_CONSOLE" /YX /GX /GR /Fp#.pch netapi32.lib

0
-1
-1
-2

�o�C�i�� �r�b�g�̃f�[�^�z�񐮐��̊���Z��H�ŁAMSB �����𗭂܂����܂܂ɉE�V�t�g�ɂ���� 1/2 ���Z���s�킹�邱�Ƃ��l����� pyhon �ł̌��ʂ��[���ł��܂��B

c �ł� C99 �����܂�܂ł͕������̊���Z�����܂��Ă��Ȃ����������ł��Bpython �����̐����̊���Z�ŏ�̂悤�ɂȂ�̂́A���j�I�o�܂̂��߂ł��B


�z�[�� �y�[�W�ɖ߂�