Class PyArray

All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
PyArrayDerived

public class PyArray extends PySequence implements Cloneable
A wrapper class around native java arrays. Instances of PyArray are created either by java functions or directly by the jarray module.

See also the jarray module.

See Also:
  • Field Details

  • Constructor Details

    • PyArray

      public PyArray(PyType type)
    • PyArray

      public PyArray(PyArray toCopy)
    • PyArray

      public PyArray(Class type, Object data)
    • PyArray

      public PyArray(Class type, int n)
  • Method Details

    • typeSetup

      public static void typeSetup(PyObject dict, PyType.Newstyle marker)
    • zeros

      public static PyArray zeros(int n, char typecode)
    • zeros

      public static PyArray zeros(int n, Class ctype)
    • array

      public static PyArray array(PyObject seq, char typecode)
    • array

      public static PyArray array(PyObject init, Class ctype)
      Create a PyArray storing ctype types and being initialised with initialiser.
      Parameters:
      init - an initialiser for the array - can be PyString or PySequence (including PyArray) or iterable type.
      ctype - Class type of the elements stored in the array.
      Returns:
      a new PyArray
    • __add__

      public PyObject __add__(PyObject other)
      Adds (appends) two PyArrays together
      Overrides:
      __add__ in class PyObject
      Parameters:
      other - a PyArray to be added to the instance
      Returns:
      the result of the addition as a new PyArray instance
    • __findattr__

      public PyObject __findattr__(String name)
      Finds the attribute.
      Overrides:
      __findattr__ in class PyObject
      Parameters:
      name - the name of the attribute of interest
      Returns:
      the value for the attribute of the specified name
      See Also:
    • __len__

      public int __len__()
      Length of the array
      Overrides:
      __len__ in class PyObject
      Returns:
      number of elements in the array
    • __repr__

      public PyString __repr__()
      String representation of PyArray
      Overrides:
      __repr__ in class PyObject
      Returns:
      string representation of PyArray
    • __tojava__

      public Object __tojava__(Class c)
      Description copied from class: PyObject
      Equivalent to the Jython __tojava__ method. Tries to coerce this object to an instance of the requested Java class. Returns the special object Py.NoConversion if this PyObject can not be converted to the desired Java class.
      Overrides:
      __tojava__ in class PySequence
      Parameters:
      c - target Class for the conversion
      Returns:
      Java object converted to required class type if possible.
    • array_append

      public void array_append(PyObject value)
    • append

      public void append(PyObject value)
      Append new value x to the end of the array.
      Parameters:
      value - item to be appended to the array
    • array_byteswap

      public void array_byteswap()
    • byteswap

      public void byteswap()
      "Byteswap" all items of the array. This is only supported for values which are 1, 2, 4, or 8 bytes in size; for other types of values, RuntimeError is raised. It is useful when reading data from a file written on a machine with a different byte order.
    • clone

      public Object clone()
      Implementation of Cloneable interface.
      Returns:
      copy of current PyArray
    • char2class

      public static Class char2class(char type) throws PyIgnoreMethodTag
      Converts a character code for the array type to a Java Class.

      The following character codes and their native types are supported:

      Type code native type
      z boolean
      c char
      b byte
      h short
      i int
      l long
      f float
      d double

      Parameters:
      type - character code for the array type
      Returns:
      Class of the native type
      Throws:
      PyIgnoreMethodTag
    • array_count

      public int array_count(PyObject value)
    • count

      public PyInteger count(PyObject value)
      Return the number of occurrences of x in the array.
      Parameters:
      value - instances of the value to be counted
      Returns:
      number of time value was found in the array.
    • array_extend

      public void array_extend(PyObject iterable)
    • extend

      public void extend(PyObject iterable)
      Append items from iterable to the end of the array. If iterable is another array, it must have exactly the same type code; if not, TypeError will be raised. If iterable is not an array, it must be iterable and its elements must be the right type to be appended to the array. Changed in version 2.4: Formerly, the argument could only be another array.
      Parameters:
      iterable - iterable object used to extend the array
    • fromfile

      public void fromfile(PyObject f, int count)
      Read count items (as machine values) from the file object f and append them to the end of the array. If less than count items are available, EOFError is raised, but the items that were available are still inserted into the array. f must be a real built-in file object; something else with a read() method won't do.
      Parameters:
      f - Python builtin file object to retrieve data
      count - number of array elements to read
    • array_fromlist

      public void array_fromlist(PyObject obj)
    • fromlist

      public void fromlist(PyObject obj)
      Append items from the list. This is equivalent to "for x in list: a.append(x)"except that if there is a type error, the array is unchanged.
      Parameters:
      obj - input list object that will be appended to the array
    • fromstring

      public void fromstring(String input)
      Appends items from the string, interpreting the string as an array of machine values (as if it had been read from a file using the fromfile() method).
      Parameters:
      input - string of bytes containing array data
    • getArray

      public Object getArray() throws PyIgnoreMethodTag
      Return the internal Java array storage of the PyArray instance
      Returns:
      the Array store.
      Throws:
      PyIgnoreMethodTag
    • getItemsize

      public int getItemsize()
      Getter for the storage size of the array's type.

      The sizes returned by this method represent the number of bytes used to store the type. In the case of streams, this is the number of bytes written to, or read from a stream. For memory this value is the minimum number of bytes required to store the type.

      This method is used by other methods to define read/write quanta from strings and streams.

      Values returned are:

      Type Size
      boolean 1
      byte 1
      char 1
      short 2
      int 4
      long 8
      float 4
      double 8
      Returns:
      number of bytes used to store array type.
    • getTypecode

      public String getTypecode() throws PyIgnoreMethodTag
      Getter for the type code of the array. char2class describes the possible type codes and their meaning.
      Returns:
      single character type code for the array
      Throws:
      PyIgnoreMethodTag
    • array_index

      public int array_index(PyObject value)
    • index

      public PyObject index(PyObject value)
      Return the smallest i such that i is the index of the first occurrence of value in the array.
      Parameters:
      value - value to find the index of
      Returns:
      index of the first occurance of value
    • array_insert

      public void array_insert(int index, PyObject value)
    • insert

      public void insert(int index, PyObject value)
      Insert a new item with value value in the array before position index. Negative values are treated as being relative to the end of the array.
      Parameters:
      index - insert position
      value - value to be inserted into array
    • array_pop

      public PyObject array_pop()
    • array_pop

      public PyObject array_pop(int i)
    • pop

      public PyObject pop()
      Removes the item with the index index from the array and returns it. The optional argument defaults to -1, so that by default the last item is removed and returned.
    • pop

      public PyObject pop(int index)
      Removes the item with the index index from the array and returns it. The optional argument defaults to -1, so that by default the last item is removed and returned.
      Parameters:
      index - array location to be popped from the array
      Returns:
      array element popped from index
    • array_remove

      public void array_remove(PyObject value)
    • remove

      public void remove(PyObject value)
      Remove the first occurrence of value from the array.
      Parameters:
      value - array value to be removed
    • array_reverse

      public void array_reverse()
    • reverse

      public void reverse()
      Reverse the elements in the array
    • array_tofile

      public void array_tofile(PyObject f)
    • array_write

      public void array_write(PyObject f)
    • tofile

      public void tofile(PyObject f)
      Write all items (as machine values) to the file object f.
      Parameters:
      f - Python builtin file object to write data
    • array_tolist

      public PyObject array_tolist()
    • tolist

      public PyObject tolist()
      Convert the array to an ordinary list with the same items.
      Returns:
      array contents as a list
    • array_tostring

      public PyObject array_tostring()
    • tostring

      public String tostring()
      Convert the array to an array of machine values and return the string representation (the same sequence of bytes that would be written to a file by the tofile() method.)